标题:有一个关于c#与sql server操作的问题请教各位:
取消只看楼主
lilan1221
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-1-2
 问题点数:0 回复次数:3 
有一个关于c#与sql server操作的问题请教各位:
问题:为什么“Console.Write(mycmd.ExecuteScalar());”的返回值是0?应该是6
请教各位了。
代码:
using System;
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class Test_DB
{
public static void Main()
{
string str_con="server=(local);database=northwind;User Id=sa;pwd=";
string str_sql="select count(CustomerID) 人数 from Customers where CustomerID like @customer";
SqlConnection mycon=new SqlConnection(str_con);
mycon.Open();
SqlCommand mycmd=mycon.CreateCommand();
mycmd.CommandText=str_sql;
mycmd.Parameters.Add("@customer",SqlDbType.NChar,5);
mycmd.Parameters["@customer"].Value="'%a'";
Console.WriteLine(mycmd.Parameters["@customer"].Value);
Console.Write(mycmd.ExecuteScalar());
mycon.Close();
}
}
}
搜索更多相关主题的帖子: sql server 
2007-01-02 16:28
lilan1221
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-1-2
得分:0 

不好意思,我试了,楼上几位的意见都不行。好象问题不是出在sql语句上,谢谢楼上的。

2007-01-19 15:00
lilan1221
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-1-2
得分:0 
谢谢,我已经试过了。但不是sql语句的问题,而是参数长度和其值长度不符。具体原因如下:
@customer参数的类型应该与它的值的长度相同。比如参数的类型是NChar(5),表示此参数值的长度是5个字节。例如:‘abc%a;若此参数的值得长度小于5,那么值得长度用空格补齐,例如此参数的值为“%a”,则带入到系统中则改为
“%a ”(%a后有3个空格)所以本例中的查询结果是0。要想得到正确的结果则应把@customer参数的长度改为2.还有一种办法那就是把@customer参数的类型改为可变长度的数据类型如“VarChar”
2007-01-23 14:43
lilan1221
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-1-2
得分:0 
哈哈,我是看sql连机丛书才知道的
2007-01-28 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-113744-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.208951 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved