ExecuteNonQuery()返回受影響行數不適用select語句
阿新 • • 發佈:2019-02-03
返回 archive url ref use .cn nbsp 類型 cnblogs 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) { ...}
ExecuteNonQuery()返回受影響行數不適用select語句