当前位置: 首页 > 编程笔记 >

C#中ExecuteNonQuery()返回值注意点分析

汪博艺
2023-03-14
本文向大家介绍C#中ExecuteNonQuery()返回值注意点分析,包括了C#中ExecuteNonQuery()返回值注意点分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C#中ExecuteNonQuery()返回值注意点。对于C#数据库程序设计有一定的借鉴价值。分享给大家供大家参考之用。具体分析如下:

首先,在查询某个表中是否有数据的时候,我们通常用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。

public void CreateMySqlCommand(string myExecuteQuery, SqlConnection myConnection) 
{
   SqlCommand myCommand = new SqlCommand(myExecuteQuery, myConnection);
   myCommand.Connection.Open();
   myCommand.ExecuteNonQuery();
   myConnection.Close();
}

相信本文所述对大家的C#程序设计有一定的借鉴价值。

 类似资料:
  • 问题内容: 这是我的代码 为假,但在数据库中插入该行以及我指定的所有信息 我手动重建查询以查看问题是否来自查询。参数,它再次无错误地插入数据库,但insertOk仍然为false!我什至还添加了另外两个不应该为空的字段,但是两种情况下的活动都是相同的 有任何想法吗? 问题答案: 对于UPDATE,INSERT和DELETE语句,返回值是受命令影响的行数。 当要插入或更新的表上存在触发器时,返回值包

  • 我试图检查unordered_set的insert()函数的返回值,但遇到以下错误: 错误-->请求将“std::pair ,bool>”转换为非标量类型“std::unordered_set::iterator{又名std::__detail::_node_iterator }”

  • 本文向大家介绍C++ 赋值构造函数注意点介绍,包括了C++ 赋值构造函数注意点介绍的使用技巧和注意事项,需要的朋友参考一下 1. 假如有继承 operator= 首先调用基类的赋值构造函数base::operator= 以上就是小编为大家带来的C++ 赋值构造函数注意点介绍全部内容了,希望大家多多支持呐喊教程~

  • 因为 Vue 的声明文件天生就具有循环性,TypeScript 可能在推断某个方法的类型的时候存在困难。因此,你可能需要在render或computed里的方法上标注返回值。 import Vue, { VNode } from 'vue' const Component = Vue.extend({ data () { return { msg: 'Hello'

  • 对于这些样式,如果我增加宽度,元素将从左侧增长。这意味着getBoundingClientRect()。在我调整宽度后,该元素的右边应该有相同的值。 但是当我使用javascript来增加宽度时,情况就不一样了。为什么不呢? 当鼠标在元素上移动时,我会增加宽度,如下所示: 每次的输出都是不同的。

  • 我的代码: 输出: 我知道printf在打印字符串时返回字符数。但为什么打印10时返回7。打印int时printf的返回值是多少? 可能重复:C中printf()函数的返回值