Menjalankan Perintah
Setiap penyedia data .NET Framework yang disertakan dengan .NET Framework memiliki objek perintahnya sendiri yang mewarisi dari DbCommand. Penyedia Data .NET Framework untuk OLE DB menyertakan objek OleDbCommand, Penyedia Data .NET Framework untuk SQL Server menyertakan objek SqlCommand, Penyedia Data .NET Framework untuk ODBC menyertakan objek OdbcCommand, dan .NET Framework. Penyedia Data .NET Framework untuk Oracle menyertakan objek OracleCommand. Masing-masing objek ini memaparkan metode untuk mengeksekusi perintah berdasarkan jenis perintah dan nilai pengembalian yang diinginkan, seperti yang dijelaskan dalam tabel berikut.
Perintah | Tampilkan Nilai |
---|---|
ExecuteReader |
Memunculkan objek DataReader . |
ExecuteScalar |
Mengembalikan nilai skalar tunggal. |
ExecuteNonQuery |
Menjalankan perintah yang tidak mengembalikan baris apa pun. |
ExecuteXMLReader |
Mengembalikan XmlReader. Tersedia untuk objek SqlCommand saja. |
Setiap objek perintah yang diketik dengan kuat juga mendukung enumerasi CommandType yang menentukan bagaimana string perintah ditafsirkan, seperti yang dijelaskan dalam tabel berikut.
CommandType | Deskripsi |
---|---|
Text |
Perintah SQL yang mendefinisikan pernyataan yang akan dijalankan di sumber data. |
StoredProcedure |
Nama prosedur tersimpan. Anda dapat menggunakan properti Parameters dari sebuah perintah untuk mengakses parameter input dan output serta mengembalikan nilai, terlepas dari metode Execute mana yang dipanggil. Saat menggunakan ExecuteReader , nilai kembalian dan parameter output tidak akan dapat diakses hingga DataReader ditutup. |
TableDirect |
Nama tabel. |
Contoh
Contoh kode berikut menunjukkan cara membuat objek SqlCommand untuk menjalankan prosedur tersimpan dengan mengatur propertinya. Objek SqlParameter digunakan untuk menentukan parameter input ke prosedur tersimpan. Perintah dijalankan menggunakan metode ExecuteReader, dan output dari SqlDataReader ditampilkan di jendela konsol.
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
Perintah Pemecahan Masalah
Penyedia Data .NET Framework untuk SQL Server menambahkan penghitung performa untuk memungkinkan Anda mendeteksi masalah terputus-putus terkait dengan eksekusi perintah yang gagal. Untuk informasi selengkapnya, lihat Penghitung Performa.