SqlCommand.Prepare Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy przygotowaną wersję polecenia w wystąpieniu 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 ()
Implementuje
Przykłady
W poniższym przykładzie pokazano użycie Prepare metody .
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
Uwagi
Jeśli CommandType ustawiono wartość StoredProcedure
, wywołanie powinno zakończyć się Prepare powodzeniem, chociaż może to spowodować brak operacji.
Przed wywołaniem Preparemetody określ typ danych każdego parametru w instrukcji do przygotowania. Dla każdego parametru, który ma typ danych o zmiennej długości, należy ustawić Size właściwość na wymagany maksymalny rozmiar. Prepare zwraca błąd, jeśli te warunki nie zostaną spełnione.
Uwaga
Jeśli kontekst bazy danych zostanie zmieniony przez wykonanie instrukcji Transact-SQL USE <database>
lub wywołanie metody, Prepare należy wywołać metodę ChangeDatabase po raz drugi.
Jeśli wywołasz metodę po wywołaniu Preparemetody , każda wartość parametru większa niż wartość określona przez Size właściwość zostanie automatycznie obcięta Execute
do oryginalnego określonego rozmiaru parametru i nie zostaną zwrócone żadne błędy obcięcia.
Parametry wyjściowe (niezależnie od tego, czy są przygotowane), muszą mieć określony przez użytkownika typ danych. Jeśli określisz typ danych o zmiennej długości, musisz również określić maksymalną wartość Size.
Przed programem Visual Studio 2010 Prepare wystąpił wyjątek. Począwszy od programu Visual Studio 2010, ta metoda nie zgłasza wyjątku.