共用方式為


執行命令

適用於:.NET Framework .NET .NET Standard

下載 ADO.NET

Microsoft SqlClient Data Provider for SQL Server 具有繼承自 DbCommandSqlCommand 物件。 此物件會公開根據命令類型與所需傳回值來執行命令的方法,如下表所述。

命令 傳回值
ExecuteReader 傳回 DataReader 物件。
ExecuteScalar 傳回單一純量值。
ExecuteNonQuery 執行不會傳回任何資料列的命令。
ExecuteXMLReader 傳回 XmlReader。 僅適用於 SqlCommand 物件。

每個強型別 (Strongly Typed) 的命令物件也會支援 CommandType 列舉型別 (Enumeration),此型別可指定解譯命令字串的方式。

CommandType 說明
Text SQL 命令,可定義在資料來源執行的陳述式。
StoredProcedure 預存程序的名稱。 您可以使用命令的 Parameters 屬性來存取輸入和輸出參數及傳回值,不論呼叫的是哪一個 Execute 方法。
TableDirect 資料表的名稱。

重要

在使用 ExecuteReader 時,無法在 DataReader 關閉之前存取傳回值和輸出參數。

範例

下列程式碼範例示範如何建立 SqlCommand 物件,以藉由設定其屬性來執行預存程序。 用來指定預存程序輸出參數的 SqlParameter 物件。 此命令是藉由使用 ExecuteReader 方法來執行,而 SqlDataReader 的輸出則會顯示在主控台視窗中。

static void GetSalesByCategory(string connectionString,
    string categoryName)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        // Create the command and set its properties.
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        command.CommandText = "SalesByCategory";
        command.CommandType = CommandType.StoredProcedure;

        // Add the input parameter and set its properties.
        SqlParameter parameter = new SqlParameter();
        parameter.ParameterName = "@CategoryName";
        parameter.SqlDbType = SqlDbType.NVarChar;
        parameter.Direction = ParameterDirection.Input;
        parameter.Value = categoryName;

        // Add the parameter to the Parameters collection.
        command.Parameters.Add(parameter);

        // Open the connection and execute the reader.
        connection.Open();
        using (SqlDataReader reader = command.ExecuteReader())
        {
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Console.WriteLine("{0}: {1:C}", reader[0], reader[1]);
                }
            }
            else
            {
                Console.WriteLine("No rows found.");
            }
            reader.Close();
        }
    }
}

針對命令進行疑難排解

Microsoft SqlClient Data Provider for SQL Server 會新增診斷計數器,讓您偵測與命令執行失敗相關的間歇性問題。 如需詳細資訊,請參閱 SqlClient 中的診斷計數器

請參閱