SqlCommand.ExecuteNonQuery 方法對鏈接執行 Transact-SQL 語句並返回受影響的行數。
對於 UPDATE、INSERT 和 DELETE 語句,返回值爲該命令所影響的行數。對於全部其餘類型的語句,返回值爲 -1。若是發生回滾,返回值也爲 -1
因此在查詢表中是否有(某條)數據的時候,必定不能用select sql語句+ cmd.ExecuteNonQuery(),經過判斷返回值是否大於0來判斷。
解決方案:
1.sql
SqlCeCommand.ExecuteScalar 方法 ( + 聚合查詢)post
執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略額外的列或行。 例如一個聚合值。blog
cmd.CommandText = "select count(*) from users where id = 10000;" 例如一個聚合值。cmd
int count = (int)cmd.ExecuteScalar() ;it
2. 用ExcuteReader()方法返回一個readerclass
if(reader.Read() == false) { ...}select