Aracılığıyla paylaş


Komut Yürütme

.NET Framework'e dahil edilen her .NET Framework veri sağlayıcısının, DbCommand'den devralan 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.

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

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

KomutTürü Açıklama
Text Veritabanı kaynağında yürütülecek ifadeleri tanımlayan bir SQL komutu.
StoredProcedure Saklı yordamın adı. Bir komutun Parameters özelliğini kullanarak giriş ve çıkış parametrelerine erişebilir ve hangi Execute yönteminin çağrıldığından bağımsız olarak değerler döndürebilirsiniz. ExecuteReaderkullanılırken, DataReader kapatılana kadar dönüş değerlerine ve çıkış parametrelerine erişilemez.
TableDirect Tablonun adı.

Örnek

Aşağıdaki kod örneği, özelliklerini ayarlayarak saklı yordamı yürütmek için bir SqlCommand nesnesinin nasıl oluşturulacağını gösterir. Saklı yordamın giriş parametresini belirtmek için bir SqlParameter nesnesi kullanılır. komut ExecuteReader yöntemi kullanılarak yürütülür ve SqlDataReader çı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($"{reader[0]}: {reader[1]:C}");
                }
            }
            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.