Freigeben über


OleDbCommand.Prepare Methode

Definition

Erstellt eine vorbereitete (oder kompilierte) Version des Befehls für die Datenquelle.

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

Implementiert

Ausnahmen

Connection ist nicht festgelegt.

- oder -

Die Connection ist nicht geöffnet.

Beispiele

Im folgenden Beispiel wird eine OleDbCommand erstellt und die Verbindung geöffnet. Das Beispiel bereitet dann eine gespeicherte Prozedur für die Datenquelle vor, indem eine Zeichenfolge übergeben wird, die eine SQL SELECT-Anweisung ist, und eine Zeichenfolge, die zum Herstellen einer Verbindung mit der Datenquelle verwendet werden soll.

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

Hinweise

Wenn die CommandType -Eigenschaft auf TableDirectfestgelegt ist, Prepare tut nichts. Wenn CommandType auf StoredProcedurefestgelegt ist, sollte der Aufruf von Prepare erfolgreich sein, obwohl er zu einer Nicht-Op führen kann.

Geben Sie vor dem Aufrufen Prepareden Datentyp der einzelnen Parameter in der -Anweisung an, die vorbereitet werden soll. Für jeden Parameter, der über einen Datentyp mit variabler Länge verfügt, müssen Sie die Size-Eigenschaft auf die maximal erforderliche Größe festlegen. Prepare gibt einen Fehler zurück, wenn diese Bedingungen nicht erfüllt sind.

Wenn Sie nach dem Aufruf Prepareeine Execute Methode aufrufen, wird jeder Parameterwert, der größer als der durch die Size-Eigenschaft angegebene Wert ist, automatisch auf die ursprünglich angegebene Größe des Parameters abgeschnitten, und es werden keine Abschneidungsfehler zurückgegeben.

Ausgabeparameter (unabhängig davon, ob sie vorbereitet sind oder nicht) müssen einen vom Benutzer angegebenen Datentyp aufweisen. Wenn Sie einen Datentyp mit variabler Länge angeben, müssen Sie auch die maximale Größe angeben.

Gilt für:

Weitere Informationen