executescalar 返回值問題
dbcommand.executescalar 方法:
執行查詢,並返回查詢所返回的結果集中第一行的第一列。 所有其他的列和行將被忽略。
語法: public abstract object executescalar()
返回值: 型別: system.object,結果集中第一行的第一列。
備註: 使用 executescalar 方法從資料庫中檢索單個值(例如乙個聚合值)。 與使用 executereader 方
法然後使用 dbdatareader 返回的資料執行生成單個值所需的操作相比,此操作需要的**較少。如果找不
到結果集中第一行的第一列;則返回 null 引用(在 visual basic 中為 nothing)。 如果資料庫中的該
值為 null,此查詢將返回 dbnull.value。
對於查詢單個字段,不包括函式的 select 語句,例如 select a欄位 from 表a ,如果不存在值,
dbcommand.executescalar 方法的返回值是 null,呼叫者需要使用 result == null 來判斷。
對於使用函式的select 語句,例如select sum(a欄位) from 表a,如果不存在值,
dbcommand.exceutescalar 方法的返回值是 dbnull.value,呼叫者需要用 result is dbnull 或者 result
== dbnull.value 來判斷。
對 ado.net 的 dbcommand.executescalar 方法的呼叫者來說,要注意根據所使用的 sql 語句來選擇使用
result == null 還是使用 result is dbnull 來判斷查詢結果是否為空。如果使用 result == null ||
result is dbnull 來判斷查詢結果是否為空就更保險了,能夠適應這兩種 sql 語句的寫法,但是執行效率
會有所降低。
判斷ExecuteScalar 是否返回結果
executescalar 返回的是首行首列的值,一般用於執行這類查詢 select count from table 返回的型別是 object,如果資料庫中沒有任何記錄時,如何判斷呢?以下是方案 其一 呼叫convert的isdbnull來判斷 object objresult tempcmd....
資料庫中的ExecuteScalar運用
資料庫中的executescalar運用,常常與聚合函式一起使用,用於統計資料庫中的某個欄位的個數,最大值,最小值,平均值等。下面就是統計登錄檔中的使用者個數 using system using system.collections.generic using system.data.sqlcli...
C 返回物件和返回引用
最大的區別在於,返回物件的話會在記憶體中根據返回的型別開闢一塊區域,用返回的值對該記憶體進行初始化,如果是返回的物件,利用拷貝構造來初始化這個區域,但是這塊區域並沒有名字,就是說之後使用者沒辦法訪問到這個區域,也成為無名變數,它只能在接下來的 中進行一次性的用途,要不作為引數傳遞,或者將值列印,再之...