這是之前我遇到問題,在網上找解決方法時找到的,當時復制到txt文檔了,今天整理筆記又看到了,貼出來,便于以后查閱。原文的作者沒記住~~
查詢某個表中是否有數據的時候,如果用ExecuteNonQuery() 來判斷值是否大于0來判斷數據的存在與否,是不正確的。
SqlCommand.ExecuteNonQuery 方法對連接執行 Transact-SQL 語句并返回受影響的行數。
備注:可以使用 ExecuteNonQuery 來執行目錄操作(例如查詢數據庫的結構或創建諸如表等的數據庫對象),或通過執行 UPDATE、INSERT 或 DELETE 語句,在不使用 DataSet 的情況下更改數據庫中的數據。
雖然 ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。對于 UPDATE、INSERT 和 DELETE 語句,返回值為該命令所影響的行數。對于所有其他類型的語句,返回值為 -1。如果發生回滾,返回值也為 -1
也就是說,如果不是update,insert,delete操作數據記錄的語句,返回值都是-1,所以, select語句不適合ExecuteNonQuery()方法
新聞熱點
疑難解答