| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1151 人关注过本帖
标题:有一个关于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
快速回复:有一个关于c#与sql server操作的问题请教各位:
数据加载中...
 
   



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

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