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ı.