ExecuteNonQuery与ExecuteScalar的区别

  public int GetRsCount(string table_name)
  {
   string strSql;
   int intCount;
   Open();
   strSql="select count(*) from "+table_name;
   SqlCommand cmd=new SqlCommand(strSql,cn);
 语句1)  intCount=(int)cmd.ExecuteScalar();//断点
语句2)//   intCount=(int)cmd.ExecuteNonQuery();//断点
   cn.Close();
   return intCount;
  }
今天测试了一下ExecuteNonQuery与ExecuteScalar的区别:
在以上语句中分别执行了语句1和语句2,因为是查询语句,所以可以查询到数据库中的所有数据,
本身数据库中有7条数据,当我用ExecuteScalar语句时,在该句设了个断点,检测到 intCount为7,
同样,当我使用语句2是,检测到 intCount为0,现在才知道为什么ExecuteScalar主要用于查询语句,
而ExecuteNonQuery用于更新和删除语句,
但是有一点不懂的就是,ExecuteScalar语句返回的是影响数目,但是帮助中确是说“ExecuteScalar:执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。 ”

ExecuteNonQuery主要是在执行更新和删除时才返回影响的数目,而在执行查询时则是返回一个0。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值