最近在寫一個程序的時候用到ExecuteNonQuery()執行 select,結果總是返回-1(因為我想通過影響的行數來判斷數據庫是否已經存在該數據)。
雖然 ExecuteNonQuery 不返回任何行,但映射到參數的任何輸出參數或返回值都會用數據進行填充。對於 UPDATE、INSERT 和 DELETE 語句,返回值為該命令所影響的行數。對於所有其他類型的語句,返回值為 -1。如果發生回滾,返回值也為 -1 。
後來的解決方案是,使用ExecuteScalar(),返回獲得數據的第一行第一列,判斷他的返回值是否為空,如果不為空說明有數據,返回true,反正返回flase。