Freigeben über


OleDbCommand.Prepare-Methode

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

Namespace: System.Data.OleDb
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public Overrides Sub Prepare
'Usage
Dim instance As OleDbCommand

instance.Prepare
public override void Prepare ()
public:
virtual void Prepare () override
public void Prepare ()
public override function Prepare ()

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Die Connection wurde nicht festgelegt.

- oder -

Die Connection ist nicht geöffnet.

Hinweise

Wenn die CommandType-Eigenschaft auf TableDirect festgelegt ist, führt Prepare keine Aktion aus. Wenn CommandType auf StoredProcedure festgelegt ist, kann der Aufruf von Prepare erfolgreich ausgeführt werden, auch wenn möglicherweise keine Aktion ausgeführt wird.

Geben Sie vor dem Aufruf von Prepare den Datentyp der einzelnen Parameter in der vorzubereitenden Anweisung an. Bei allen Parametern mit einem Datentyp variabler Länge müssen Sie die Size-Eigenschaft auf die maximal benötigte Größe festlegen. Wenn diese Bedingungen nicht erfüllt sind, gibt Prepare einen Fehler zurück.

Wenn Sie eine Execute-Methode nach dem Aufruf von Prepare 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 gekürzt, und es werden keine Kürzungsfehler zurückgegeben.

Ausgabeparameter müssen einen benutzerdefinierten Datentyp aufweisen, unabhängig davon, ob eine Vorbereitung erfolgt ist oder nicht. Wenn Sie einen Datentyp variabler Länge angeben, müssen Sie auch die maximale Size angeben.

Beispiel

Im folgenden Beispiel wird ein OleDbCommand erstellt, und die Verbindung wird geöffnet. Anschließend werden eine gespeicherte Prozedur für die Datenquelle vorbereitet. Dazu wird eine Zeichenfolge übergeben, die eine SQL-SELECT-Anweisung ist, sowie eine Zeichenfolge zum Herstellen einer Verbindung mit der Datenquelle.

Public Sub OleDbCommandPrepare(ByVal connectionString As String)

    Using connection As OleDbConnection = New _
        OleDbConnection(connectionString)
        connection.Open()

        ' Create the Command.
        Dim command As OleDbCommand = 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
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();
    }
}

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OleDbCommand-Klasse
OleDbCommand-Member
System.Data.OleDb-Namespace

Weitere Ressourcen

Arbeiten mit Befehlen