请问,在C#中,如何给 select 查询语句参数赋值呀?

woaichenyu 2006-06-26 03:42:20
str = Sfzbm.Substring(0, 6);
aa = int.Parse(str);
SqlCommand CMD = new SqlCommand("Select DQ From sfz" , conn);
CMD.Parameters.Add(aa);
conn.Open();
...全文
474 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaichenyu 2006-06-27
  • 打赏
  • 举报
回复
多谢各位

在MSDN 上找到一个属性判断
我改成如下就可以了

str = Number.Substring(0, 6);
aa = int.Parse(str);
SqlCommand CMD = new SqlCommand("Select DQ From sfz Where BM = @aa", conn);
SqlParameter myParm = CMD.Parameters.Add("aa", SqlDbType.Int);
myParm.Value = aa;
conn.Open();
SqlDataReader myReader = CMD.ExecuteReader();
myReader.Read();
if (myReader.HasRows)
return myReader.GetString(0);
else
return "";
woaichenyu 2006-06-27
  • 打赏
  • 举报
回复
记得在ADO里面好有一个

RowCount 样的 属性可以检查

不知道。NET里面是怎么检查的
woaichenyu 2006-06-27
  • 打赏
  • 举报
回复
我就是想问,用什么方法检查结果是否为空值呀?
canserly 2006-06-26
  • 打赏
  • 举报
回复
在返回之前,先检查读到的是不是空值
達魔 2006-06-26
  • 打赏
  • 举报
回复
str = Sfzbm.Substring(0, 6);
aa = int.Parse(str);
SqlCommand CMD = new SqlCommand("Select DQ From sfz Where BM = @aa" , conn);
SqlParameter myParm = CMD.Parameters.Add("aa",SqlDbType.Int);
myParm.Value = aa;
conn.Open();
SqlDataReader myReader = CMD.ExecuteReader();
myReader.Read();
//以下两句的的写法有问题,都已经返回了,后面的关闭操作不会再执行
//先检查一下myReader.GetString(0); 的结果再返回吧
return myReader.GetString(0);

conn.Close();
fcuandy 2006-06-26
  • 打赏
  • 举报
回复
SqlDataReader myReader = CMD.ExecuteReader();
myReader.Read();
return myReader.GetString(0);
先检测有没有读到记录,你这样直接赋值肯定错的。就像用ado时,不检测rs是否eof就操作一样。
if(myReader.Read())
{return .....}

woaichenyu 2006-06-26
  • 打赏
  • 举报
回复
str = Sfzbm.Substring(0, 6);
aa = int.Parse(str);
SqlCommand CMD = new SqlCommand("Select DQ From sfz Where BM = @aa" , conn);
SqlParameter myParm = CMD.Parameters.Add("aa",SqlDbType.Int);
myParm.Value = aa;
conn.Open();
SqlDataReader myReader = CMD.ExecuteReader();
myReader.Read();
return myReader.GetString(0);

conn.Close();

我是这样写的
正常情况下是可以运行了

但是,如果当没有查询到记录的时候,将会出错

请问大蛱们,是如何解决是好呀?
woaichenyu 2006-06-26
  • 打赏
  • 举报
回复
多谢
canserly(1个好汉3个裤衩) (

搞好了

canserly 2006-06-26
  • 打赏
  • 举报
回复
你格式按我的来就好,其他的按你那边的要求来
fcuandy 2006-06-26
  • 打赏
  • 举报
回复
SqlCommand CMD = new SqlCommand("Select DQ From sfz" , conn);
你这个需要参数吗?
canserly 2006-06-26
  • 打赏
  • 举报
回复
我用的ORACLE,你改成SQL的
OracleParameter[] para = new OracleParameter[2];
//设置参数
para[0] = new OracleParameter(":DD",OracleType.DateTime,SystemVariable.Parm_DateTime);
para[0].Value = DtStart;

para[1] = new OracleParameter(":DD2",OracleType.DateTime,SystemVariable.Parm_DateTime);
para[1].Value = DateTime.Parse(DtEnd.ToShortDateString() + " 23:59:59");
//执行SQL语句。
woaichenyu 2006-06-26
  • 打赏
  • 举报
回复
请会者帮帮忙呀
woaichenyu 2006-06-26
  • 打赏
  • 举报
回复
请各位会者帮帮忙

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧