程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> ExecuteNonQuery()返回值注意點,executenonquery

ExecuteNonQuery()返回值注意點,executenonquery

編輯:C#入門知識

ExecuteNonQuery()返回值注意點,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(); }


ExecuteNonQuery()返回值的幾種情況

查到下面文章。
關於ExecuteNonQuery() 方法
以前對這個一直都沒在意,基本上都沒有用其返回值,查了一下MSDN,如下:
SqlCommand.ExecuteNonQuery 方法對連接執行 Transact-SQL 語句並返回受影響的行數。備注:可以使用ExecuteNonQuery 來執行目錄操作(例如查詢數據庫的結構或創建諸如表等的數據庫對象),或通過執行
Update、Insert 或 Delete 語句,在不使用 DataSet 的情況下更改數據庫中的數據。雖然ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。對於Update、Insert 和 Delete 語句,返回值為該命令所影響的行數。對於所有其他類型的語句,返回值為
-1。如果發生回滾,返回值也為 -1
執行Select子句,數據庫並無變化,自然返回-1。同樣適合ODBC、OLE
DB等數據源,因為都實現IDbCommand.ExecuteNonQuery方法。函數申明:
[Visual Basic]
Public Overridable Function ExecuteNonQuery() As IntegerImplements_IDbCommand.ExecuteNonQuery實現:
IDbCommand.ExecuteNonQuery
對於IDbCommand.ExecuteNonQuery
方法,針對 .NET Framework 數據提供程序的 Connection 對象執行 SQL
語句,並返回受影響的行數。可以使用ExecuteNonQuery 來執行目錄操作(例如查詢數據庫的結構或創建諸如表等的數據庫對象),或通過執行
Update、Insert 或 Delete 語句,在不使用 DataSet 的情況下更改數據庫中的數據。雖然ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。對於其他所有類型的語句,返回值為 -1
 

commandExecuteNonQuery()返回值 到底是哪個?

command是什麼類型的?

如果是 OleDbCommand

對於 UPDATE、INSERT 和 DELETE 語句,返回值為該命令所影響的行數。對於所有其他類型的語句,返回值為 -1。如果發生回滾,返回值也為 -1。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved