共用方式為


SqlCommand.ExecuteScalar 方法

定義

執行查詢,並傳回查詢所傳回之結果集中第一個資料列的第一個資料行。 忽略其他資料行或資料列。

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 設定為 StreamValue ,會使用BinaryVarBinary以外的 。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

-或-

SqlDbType當 設定為 TextReaderValue ,使用CharNCharNVarCharVarCharXml以外的 。

-或-

SqlDbType當 設定為 XmlReaderValue ,會使用Xml以外的 。

對鎖定的資料列執行命令時發生例外狀況。 當您使用 Microsoft .NET Framework 1.0 版時不會產生這個例外狀況。

-或-

串流作業期間發生逾時。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

在串流作業期間已關閉或卸除的 SqlConnection。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

在串流作業期間,或 XmlReaderTextReader 物件中 Stream 發生錯誤。 如需串流的詳細資訊,請參閱 SqlClient 串流支援

Stream 串流作業期間關閉 、 XmlReaderTextReader 物件。 如需串流的詳細資訊,請參閱 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();

適用於