查詢某個表中是否有數據的時候,我用了ExecuteNonQuery(),并通過判斷值是否大于0來判斷數據的存在與否。結果與我所設想的很不一致,調試時才發現,其執行后返回的結果是-1,對此我很是不理解,回頭查了下資料,如下顯示: SqlCommand.ExecuteNonQuery 方法對連接執行 Transact-SQL 語句并返回受影響的行數。 備注:可以使用 ExecuteNonQuery 來執行目錄操作(例如查詢數據庫的結構或創建諸如表等的數據庫對象),或通過執行 UPDATE、INSERT 或 DELETE 語句,在不使用 DataSet 的情況下更改數據庫中的數據。 雖然 ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。對于 UPDATE、INSERT 和 DELETE 語句,返回值為該命令所影響的行數。對于所有其他類型的語句,返回值為 -1。如果發生回滾,返回值也為 -1 看完后才明白,原來select語句不適合ExecuteNonQuery()方法,原來是這樣,真笨,方法用錯了!特意把它記錄下來,希望朋友不要犯類似的錯誤!
publicintExecuteNonQuery();
受影響的行數。
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(); }
新聞熱點
疑難解答