ExecuteNonQuery()返回受影響行數不適用select語句


SqlCommand.ExecuteNonQuery 方法對連接執行 Transact-SQL 語句並返回受影響的行數。

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

所以在查詢表中是否有(某條)數據的時候,一定不能用select sql語句+ cmd.ExecuteNonQuery(),通過判斷返回值是否大於0來判斷。

解決方案:
1.

SqlCeCommand.ExecuteScalar 方法 ( + 聚合查詢)

 

執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略額外的列或行。 例如一個聚合值。

cmd.CommandText = "select count(*) from users where id = 10000;"  例如一個聚合值。

int count = (int)cmd.ExecuteScalar() ;

2. 用ExcuteReader()方法返回一個reader

if(reader.Read() == false) { ...}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM