Komut Yürütme

.NET Framework'e dahil edilen her .NET Framework veri sağlayıcısının öğesinden DbCommanddevralınan kendi komut nesnesi vardır. OLE DB için .NET Framework Veri Sağlayıcısı bir OleDbCommand nesnesi, SQL Server için .NET Framework Veri Sağlayıcısı bir SqlCommand nesnesi, ODBC için .NET Framework Veri Sağlayıcısı bir OdbcCommand nesnesi ve Oracle için .NET Framework Veri Sağlayıcısı bir OracleCommand nesnesi içerir. Bu nesnelerin her biri, aşağıdaki tabloda açıklandığı gibi komut türüne ve istenen dönüş değerine göre komutları yürütmek için yöntemleri kullanıma sunar.

Command Dönüş Değeri
ExecuteReader Döndürür bir DataReader nesne.
ExecuteScalar Tek bir skaler değer döndürür.
ExecuteNonQuery Satır döndürmeyen bir komut yürütür.
ExecuteXMLReader bir XmlReaderdöndürür. Yalnızca bir SqlCommand nesne için kullanılabilir.

Kesin olarak yazılan her komut nesnesi, aşağıdaki tabloda açıklandığı gibi bir CommandType komut dizesinin nasıl yorumlandığını belirten bir numaralandırmayı da destekler.

Commandtype Açıklama
Text Veri kaynağında yürütülecek deyimleri tanımlayan bir SQL komutu.
StoredProcedure Saklı yordamın adı. Giriş ve çıkış parametrelerine erişmek ve hangi Execute yöntemin çağrıldığından bağımsız olarak değer döndürmek için komutun özelliğini kullanabilirsinizParameters. kullanırken ExecuteReader, dönüş değerlerine ve çıkış parametrelerine kapatılana DataReader kadar erişilemez.
TableDirect Tablonun adı.

Örnek

Aşağıdaki kod örneği, özelliklerini ayarlayarak saklı yordamı yürütmek üzere bir SqlCommand nesnenin nasıl oluşturulacağını gösterir. SqlParameter Saklı yordamın giriş parametresini belirtmek için bir nesne kullanılır. komutu yöntemi kullanılarak ExecuteReader yürütülür ve komutundan elde SqlDataReader edilen çıkış konsol penceresinde görüntülenir.

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

        // Add the input parameter and set its properties.
        SqlParameter parameter = new()
        {
            ParameterName = "@CategoryName",
            SqlDbType = SqlDbType.NVarChar,
            Direction = ParameterDirection.Input,
            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();
        }
    }
}
Shared Sub GetSalesByCategory(ByVal connectionString As String, _
    ByVal categoryName As String)

    Using connection As New SqlConnection(connectionString)

        ' Create the command and set its properties.
        Dim command As SqlCommand = New SqlCommand()
        command.Connection = connection
        command.CommandText = "SalesByCategory"
        command.CommandType = CommandType.StoredProcedure

        ' Add the input parameter and set its properties.
        Dim parameter As 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 reader As SqlDataReader = command.ExecuteReader()

            If reader.HasRows Then
                Do While reader.Read()
                    Console.WriteLine("{0}: {1:C}", _
                      reader(0), reader(1))
                Loop
            Else
                Console.WriteLine("No rows returned.")
            End If
        End Using
    End Using
End Sub

Sorun Giderme Komutları

SQL Server için .NET Framework Veri Sağlayıcısı, başarısız komut yürütmeleriyle ilgili aralıklı sorunları algılamanızı sağlayan performans sayaçları ekler. Daha fazla bilgi için bkz . Performans Sayaçları.

Ayrıca bkz.