Bagikan melalui


SqlCommand.Prepare Metode

Definisi

Membuat versi perintah yang disiapkan pada instans SQL Server.

public:
 override void Prepare();
public:
 virtual void Prepare();
public override void Prepare ();
public void Prepare ();
override this.Prepare : unit -> unit
abstract member Prepare : unit -> unit
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()
Public Sub Prepare ()

Penerapan

Contoh

Contoh berikut menunjukkan penggunaan Prepare metode .

private static void SqlCommandPrepareEx(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand(null, connection);

        // Create and prepare an SQL statement.
        command.CommandText =
            "INSERT INTO Region (RegionID, RegionDescription) " +
            "VALUES (@id, @desc)";
        SqlParameter idParam = new SqlParameter("@id", SqlDbType.Int, 0);
        SqlParameter descParam =
            new SqlParameter("@desc", SqlDbType.Text, 100);
        idParam.Value = 20;
        descParam.Value = "First Region";
        command.Parameters.Add(idParam);
        command.Parameters.Add(descParam);

        // Call Prepare after setting the Commandtext and Parameters.
        command.Prepare();
        command.ExecuteNonQuery();

        // Change parameter values and call ExecuteNonQuery.
        command.Parameters[0].Value = 21;
        command.Parameters[1].Value = "Second Region";
        command.ExecuteNonQuery();
    }
}
Private Sub SqlCommandPrepareEx(ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()
        Dim command As New SqlCommand("", connection)

        ' Create and prepare an SQL statement.
        command.CommandText = _
           "INSERT INTO Region (RegionID, RegionDescription) " & _
           "VALUES (@id, @desc)"
        Dim idParam As SqlParameter = _
            New SqlParameter("@id", SqlDbType.Int, 0)
        Dim descParam As SqlParameter = _
            New SqlParameter("@desc", SqlDbType.Text, 100)
        idParam.Value = 20
        descParam.Value = "First Region"
        command.Parameters.Add(idParam)
        command.Parameters.Add(descParam)

        ' Call Prepare after setting the Commandtext and Parameters.
        command.Prepare()
        command.ExecuteNonQuery()

        ' Change parameter values and call ExecuteNonQuery.
        command.Parameters(0).Value = 21
        command.Parameters(1).Value = "Second Region"
        command.ExecuteNonQuery()
    End Using
End Sub

Keterangan

Jika CommandType diatur ke StoredProcedure, panggilan ke Prepare harus berhasil, meskipun dapat menyebabkan no-op.

Sebelum Anda memanggil Prepare, tentukan jenis data setiap parameter dalam pernyataan yang akan disiapkan. Untuk setiap parameter yang memiliki jenis data panjang variabel, Anda harus mengatur Size properti ke ukuran maksimum yang diperlukan. Prepare mengembalikan kesalahan jika kondisi ini tidak terpenuhi.

Catatan

Jika konteks database diubah dengan menjalankan pernyataan Transact-SQL USE <database> , atau dengan memanggil ChangeDatabase metode , maka Prepare harus dipanggil untuk kedua kalinya.

Jika Anda memanggil Execute metode setelah memanggil Prepare, nilai parameter apa pun yang lebih besar dari nilai yang ditentukan oleh Size properti secara otomatis dipotong ke ukuran parameter asli yang ditentukan, dan tidak ada kesalahan pemotongan yang dikembalikan.

Parameter output (baik disiapkan atau tidak) harus memiliki jenis data yang ditentukan pengguna. Jika Anda menentukan jenis data panjang variabel, Anda juga harus menentukan maksimum Size.

Sebelum Visual Studio 2010, Prepare melemparkan pengecualian. Dimulai di Visual Studio 2010, metode ini tidak memberikan pengecualian.

Berlaku untuk

Lihat juga