| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1151 人关注过本帖
标题:有一个关于c#与sql server操作的问题请教各位:
只看楼主 加入收藏
lilan1221
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-1-2
收藏
 问题点数:0 回复次数:11 
有一个关于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
fqbnet2008
Rank: 2
等 级:新手上路
威 望:4
帖 子:1020
专家分:0
注 册:2007-1-4
收藏
得分:0 
[讨论]
试一下下面:
Console.Write((int)mycmd.ExecuteScalar());
或者
Console.Write(convert.toInt(mycmd.ExecuteScalar()));


雄关漫道真如铁,而今迈步从头越,从头越,苍山如海,残阳如血㊣♀★
2007-01-04 18:07
shenba
Rank: 1
等 级:新手上路
威 望:1
帖 子:179
专家分:0
注 册:2006-9-17
收藏
得分:0 
用double进行转吧

2007-01-04 19:13
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
string str_sql="select count(CustomerID), 人数 from Customers where CustomerID like @customer";

飘过~~
2007-01-04 19:39
lilan1221
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-1-2
收藏
得分:0 

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

2007-01-19 15:00
6ygg
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2007-1-19
收藏
得分:0 
select count(CustomerID) 人数 from Customers where CustomerID like @customer
把你这个语句放到查询分析器里去执行一下.

一个天才顶不上十个笨蛋!!!! 书山有路勤为径,学海无涯友相伴。
2007-01-19 17:33
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
zoroincsh
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-1-16
收藏
得分:0 
长见识了 。

2007-01-23 20:15
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
晕了,不早说..

飘过~~
2007-01-23 20:44
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.021717 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved