ExecuteScalar這個方法是從數據庫中檢索單個值返回值是object類型,必須用與它在數據庫里存放的類型相同類型或者可以轉換成的類型,
比如數據是nchar類型值為 "123" 就可以用(int)ExecuteScalar(),
如果數據是nchar類型值為 "
abc"就不能用(int)ExecuteScalar(),就得寫string result = ExecuteScalar().ToString
ExecuteScalar 的規則就是,返回第一列,第一行的數據。如果第一列第一行不為空,那么ExecuteScalar就直接對應的DotNet的值。如果有第一行,但是第一列為空,那么返回的是 DBNull 。如果一行都沒有,那么ExecuteScalar就返回null
規則就是這樣的。這里容易犯的一個錯誤是,把ExecuteScalar返回DBNull與null的情況混淆,例如:
string username=cmd.ExecuteScalar().ToString();
除非你認為cmd執行后,肯定至少有一行數據,否則這里就會出錯。