OleDbCommand.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ą (lub skompilowana) wersję polecenia w źródle danych.
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
Wyjątki
Przykłady
W poniższym przykładzie zostanie utworzone połączenie OleDbCommand i zostanie otwarte połączenie. Następnie przykład przygotowuje procedurę składowaną w źródle danych, przekazując ciąg, który jest instrukcją SQL SELECT i ciągiem służącym do nawiązywania połączenia ze źródłem danych.
private static void OleDbCommandPrepare(string connectionString)
{
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open();
// Create the Command.
OleDbCommand command = new OleDbCommand();
// Set the Connection, CommandText and Parameters.
command.Connection = connection;
command.CommandText =
"INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?)";
command.Parameters.Add("RegionID", OleDbType.Integer, 4);
command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50);
command.Parameters[0].Value = 20;
command.Parameters[1].Value = "First Region";
// Call Prepare and ExecuteNonQuery.
command.Prepare();
command.ExecuteNonQuery();
// Change parameter values and call ExecuteNonQuery.
command.Parameters[0].Value = 21;
command.Parameters[1].Value = "SecondRegion";
command.ExecuteNonQuery();
}
}
Public Sub OleDbCommandPrepare(ByVal connectionString As String)
Using connection As OleDbConnection = New _
OleDbConnection(connectionString)
connection.Open()
' Create the Command.
Dim command As New OleDbCommand()
' Set the Connection, CommandText and Parameters.
command.Connection = connection
command.CommandText = _
"INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?);"
command.Parameters.Add("RegionID", OleDbType.Integer, 4)
command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50)
command.Parameters(0).Value = 20
command.Parameters(1).Value = "First Region"
' Call Prepare and ExecuteNonQuery.
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 właściwość jest ustawiona CommandType na TableDirect
wartość , Prepare nic nie robi. 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ć właściwość Size na wymagany maksymalny rozmiar. Prepare zwraca błąd, jeśli te warunki nie zostaną spełnione.
Jeśli wywołasz metodę po wywołaniu Preparemetody , każda wartość parametru, która jest większa niż wartość określona przez właściwość Size, 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ć maksymalny rozmiar.