OleDbCommand.Prepare Methode

Definition

Erstellt eine vorbereitete (oder kompilierte) Version des Befehls für die Datenquelle.Creates a prepared (or compiled) version of the command on the data source.

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

Implementiert

Ausnahmen

Connection ist nicht festgelegt.The Connection is not set.

- oder --or- Die Connection ist nicht geöffnet.The Connection is not open.

Beispiele

Im folgenden Beispiel wird eine OleDbCommand erstellt und die Verbindung geöffnet.The following example creates an OleDbCommand and opens the connection. Im Beispiel wird dann eine gespeicherte Prozedur für die Datenquelle vorbereitet, indem eine Zeichenfolge, die eine SQL-SELECT-Anweisung ist, und eine Zeichenfolge übergeben wird, mit der eine Verbindung zur Datenquelle hergestellt wird.The example then prepares a stored procedure on the data source by passing a string that is an SQL SELECT statement and a string to use to connect to the data source.

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, führt Prepare nichts aus.If the CommandType property is set to TableDirect, Prepare does nothing. Wenn CommandType auf StoredProcedurefestgelegt ist, sollte der Prepare-erfolgreich aufgerufen werden, obwohl dies möglicherweise einen No-op-Vorgang verursacht.If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may cause a no-op.

Bevor Sie Prepareaufrufen, geben Sie den Datentyp der einzelnen Parameter in der Anweisung an, die vorbereitet werden soll.Before you call Prepare, specify the data type of each parameter in the statement to be prepared. Für jeden Parameter, der über einen Datentyp variabler Länge verfügt, müssen Sie die size -Eigenschaft auf die maximal erforderliche Größe festlegen.For each parameter that has a variable length data type, you must set the Size property to the maximum size needed. Prepare gibt einen Fehler zurück, wenn diese Bedingungen nicht erfüllt sind.Prepare returns an error if these conditions are not met.

Wenn Sie eine Execute Methode aufrufen, nachdem Sie Prepareaufgerufen haben, wird jeder Parameterwert, der größer ist als der Wert, der von der size -Eigenschaft angegeben wird, automatisch auf die ursprünglich angegebene Größe des Parameters gekürzt, und es werden keine abgeschnittene Fehler zurückgegeben.If you call an Execute method after you call Prepare, any parameter value that is larger than the value specified by the Size property is automatically truncated to the original specified size of the parameter, and no truncation errors are returned.

Ausgabeparameter (ob vorbereitet oder nicht) müssen einen benutzerdefinierten Datentyp aufweisen.Output parameters (whether prepared or not) must have a user-specified data type. Wenn Sie einen Datentyp mit variabler Länge angeben, müssen Sie auch die maximale Größeangeben.If you specify a variable length data type, you must also specify the maximum Size.

Gilt für:

Siehe auch