ExecuteNonQuery()返回值
查询某个表中是否有数据的时候,我用了ExecuteNonQuery(),并通过判断值是否大于0来判断数据的存在与否。结果与我所设想的很不一致,调试时才发现,其执行后返回的结果是-1,对此我很是不理解,回头查了下资料,如下显示:
SqlCommand.ExecuteNonQuery 方法对连接执行 Transact-SQL 语句并返回受影响的行数。
备注:可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。
虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
看完后才明白,原来select语句不适合ExecuteNonQuery()方法,原来是这样,真笨,方法用错了!特意把它记录下来,希望朋友不要犯类似的错误!
public int ExecuteNonQuery();
返回值
受影响的行数。
实现
IDbCommand.ExecuteNonQuery
备注
您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。
虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。
[C#]
public void CreateMySqlCommand(string myExecuteQuery, SqlConnection myConnection)
{
SqlCommand myCommand = new SqlCommand(myExecuteQuery, myConnection);
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
http://blog.csdn.net/cdhql/article/details/6193075
最新文章
- java类初始化的过程
- mysql中更新或者删除语句中子语句不能操作同一个表You can't specify target table 'test' for update in FROM clause
- Js+XML 操作
- GridView1_RowDataBound解决限制字段显示长度用";...";显示ToolTip
- The P4 Language Specification v1.0.2 Header and Fields
- iOS深入学习(再谈block)
- log4j 应用
- PHP 5.6.6 上运行 ecshop 2.7.3 不兼容问题整合
- OC - 26.CAAnimationGroup
- 【Cocos2d-X开发学习笔记】第26期:游戏背景之滚动地图背景(CCParallaxNode)的使用
- swift 弹窗
- &;简单使用记录
- yum安装CDH5.5 Hadoop集群
- window.history.go(-1)返回且刷新页面
- js的splice方法
- Python的re模块中search与match的区别
- GIt -- Window下配置 git
- virtualenv+pyenv管理python工作环境
- lnmp 搭建 svn服务
- VS2013 VS2015 VS2017调试出现无法启动iis express web服务器