Bagikan melalui


Menjalankan perintah

Berlaku untuk: .NET Framework .NET .NET Standard

Mengunduh ADO.NET

Penyedia Data Microsoft SqlClient untuk SQL Server memiliki SqlCommand objek yang mewarisi dari DbCommand. Objek ini mengekspos metode untuk menjalankan 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.
TableDirect Nama tabel.

Penting

Saat menggunakan ExecuteReader, nilai kembalian dan parameter output tidak akan dapat diakses hingga DataReader ditutup.

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

Perintah pemecahan masalah

Penyedia Data Microsoft SqlClient untuk SQL Server menambahkan penghitung diagnostik untuk memungkinkan Anda mendeteksi masalah terputus-terputus terkait dengan eksekusi perintah yang gagal. Untuk informasi selengkapnya, lihat Penghitung diagnostik di SqlClient.

Lihat juga