Sdílet prostřednictvím


Spuštění příkazu

Platí pro: .NET Framework .NET Standard

Stáhnout ADO.NET

Zprostředkovatel dat Microsoft SqlClient pro SQL Server má SqlCommand objekt, který dědí z DbCommand. Tento objekt zveřejňuje metody pro spouštění příkazů na základě typu příkazu a požadované návratové hodnoty, jak je popsáno v následující tabulce.

Command Návratová hodnota
ExecuteReader Vrátí DataReader objekt.
ExecuteScalar Vrátí jednu skalární hodnotu.
ExecuteNonQuery Spustí příkaz, který nevrací žádné řádky.
ExecuteXMLReader Vrátí hodnotu XmlReader. K dispozici pouze pro SqlCommand objekt.

Každý objekt silně typovaného příkazu také podporuje výčet CommandType, který určuje, jak se interpretuje řetězec příkazu, jak je popsáno v následující tabulce.

CommandType Description
Text Příkaz SQL definující příkazy, které se mají spustit ve zdroji dat.
StoredProcedure Název uložené procedury. Vlastnost příkazu můžete použít Parameters pro přístup ke vstupním a výstupním parametrům a návratovým hodnotám bez ohledu na to, kterou Execute metodu se volá.
TableDirect Název tabulky.

Důležité

Při použití ExecuteReader nebudou návratové hodnoty a výstupní parametry přístupné, dokud se DataReader nezavře.

Example

Následující příklad kódu ukazuje, jak vytvořit SqlCommand objekt pro spuštění uložené procedury nastavením jeho vlastností. Objekt SqlParameter slouží k zadání vstupního parametru uložené procedury. Příkaz se spustí pomocí ExecuteReader metody a výstup z SqlDataReader okna konzoly se zobrazí.

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();
        }
    }
}

Příkazy pro řešení potíží

Zprostředkovatel dat Microsoft SqlClient pro SQL Server přidává diagnostické čítače , které umožňují detekovat přerušované problémy související s neúspěšnými spuštěními příkazů. Další informace naleznete v tématu Diagnostické čítače v SqlClient.

Viz také