SqlCommand.ExecuteScalar 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
執行查詢,並傳回查詢所傳回之結果集中第一個資料列的第一個資料行。 忽略其他資料行或資料列。
public:
override System::Object ^ ExecuteScalar();
public override object ExecuteScalar ();
override this.ExecuteScalar : unit -> obj
Public Overrides Function ExecuteScalar () As Object
傳回
結果集中第一列的第一個資料行,如果結果集是空的,則為 Visual Basic 中的 null 參考) ( Nothing
。 最多傳回 2033 個字元。
例外狀況
當 SqlDbType 設定為 Stream 時 Value ,會使用Binary或VarBinary以外的 。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
-或-
SqlDbType當 設定為 TextReader 時 Value ,使用Char、NChar、NVarChar、VarChar或Xml以外的 。
-或-
對鎖定的資料列執行命令時發生例外狀況。 當您使用 Microsoft .NET Framework 1.0 版時不會產生這個例外狀況。
-或-
串流作業期間發生逾時。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
在串流作業期間已關閉或卸除的 SqlConnection。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
在串流作業期間,或 XmlReaderTextReader 物件中 Stream 發生錯誤。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
在 Stream 串流作業期間關閉 、 XmlReader 或 TextReader 物件。 如需串流的詳細資訊,請參閱 SqlClient 串流支援。
範例
下列範例會 SqlCommand 建立 ,然後使用 執行它 ExecuteScalar 。 此範例會傳遞字串,代表要插入資料表的新值,以及用來連接到資料來源的字串。 如果插入新的資料列,則此函式會傳回新的 Identity 資料行值,失敗時為 0。
using System;
using System.Data;
using Microsoft.Data.SqlClient;
public class Sample
{
public void CreateSqlCommand(
string queryString, SqlConnection connection)
{
SqlCommand command = new
SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteScalar();
connection.Close();
}
備註
ExecuteScalar使用 方法來擷取單一值 (,例如,從資料庫) 匯總值。 這需要比使用 ExecuteReader 方法較少的程式碼,然後執行您需要使用 傳回的資料來產生單一 SqlDataReader 值的作業。
典型的 ExecuteScalar 查詢可以格式化為下列 C# 範例:
cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();