本文实例讲述了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(); }