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

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

相關文章
相關標籤/搜索