在做一個程序的時候用到ExecuteNonQuery()執行 select,結果總是返回-1。
查到下面文章。
關於ExecuteNonQuery() 方法
最近看到有人問爲什麼SqlCommand.ExecuteNonQuery()執行Select子句後老是返回-1的問題。
以前對這個一直都沒在意,基本上都沒有用其返回值,查了一下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 Integer Implements _ IDbCommand.ExecuteNonQuery
實現:
IDbCommand.ExecuteNonQuery
對於IDbCommand.ExecuteNonQuery 方法,針對 .NET Framework 數據提供程序的 Connection 對象執行 SQL 語句,並返回受影響的行數。
可以使用 ExecuteNonQuery 來執行目錄操作(例如查詢數據庫的結構或創建諸如表等的數據庫對象),或通過執行 Update、Insert 或 Delete 語句,在不使用 DataSet 的情況下更改數據庫中的數據。
雖然 ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。
對於 Update、Insert 和 Delete 語句,返回值爲該命令所影響的行數。對於其他所有類型的語句,返回值爲 -1
ExecuteNonQuery() 方法 select
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.