ExecuteScalar運行查詢,並返回查詢所返回的結果集中第一行的第一列或空引用(假設結果集為空).忽略其它列或行.
使用 ExecuteScalar 方法從數據庫中檢索單個值。
由於不用創建行集、查找值並關閉行集,所以產生的系統開銷很小與使用 ExecuteReader方法,然后使用 SqlDataReader 返回的數據運行生成單個值所需的操作相比,此操作須要的代碼較少
cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();//一般用來獲取一個聚合值 如SUM(). COUNT()
[說明]:我們平時Select 時候可能會碰上這樣的情況,即所求的數據集為空或不存在兩種情況 數據集為空即值為NULL,
可是它的行數為1 代碼不加以推斷的話會出現“指定的轉換無效”的ERROR
解決方式--〉 object obj = comm.ExecuteScalar(); //返回類型為object
if (obj == System.DBNull.Value) //推斷是否是空值
MessageBox.Show("Result Is Null 數據集的行數為一");
數據集不存在即行數為零 直接使用 Int32 count = (Int32) cmd.ExecuteScalar() 會出現“未將對象引用設置到 對象的實例”的ERROR
解決方式--> object obj = comm.ExecuteScalar(); if (obj == null ) MessageBox.Show("數據集的行數為零");