OleDbCommand.Prepare Methode

Definitie

Hiermee maakt u een voorbereide (of gecompileerde) versie van de opdracht op de gegevensbron.

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

Implementeringen

Uitzonderingen

De Connection is niet ingesteld.

– of –

Het Connection is niet open.

Voorbeelden

In het volgende voorbeeld wordt een OleDbCommand verbinding gemaakt en geopend. In het voorbeeld wordt vervolgens een opgeslagen procedure op de gegevensbron voorbereid door een tekenreeks door te geven die een SQL SELECT-instructie is en een tekenreeks die moet worden gebruikt om verbinding te maken met de gegevensbron.

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

Opmerkingen

Als de CommandType eigenschap is ingesteld op TableDirect, Prepare doet u niets. Als CommandType dit is ingesteld StoredProcedure, moet de aanroep Prepare slagen, hoewel dit een no-opkan veroorzaken.

Voordat u aanroept Prepare, geeft u het gegevenstype van elke parameter op in de instructie die moet worden voorbereid. Voor elke parameter met een gegevenstype variabele lengte moet u de eigenschap Grootte instellen op de maximale grootte die nodig is. Prepare retourneert een fout als niet aan deze voorwaarden wordt voldaan.

Als u een Execute methode aanroept nadat u de aanroep Preparehebt uitgevoerd, wordt elke parameterwaarde die groter is dan de waarde die is opgegeven door de eigenschap Grootte automatisch afgekapt tot de oorspronkelijke opgegeven grootte van de parameter en worden er geen afkappingsfouten geretourneerd.

Uitvoerparameters (al dan niet voorbereid) moeten een door de gebruiker opgegeven gegevenstype hebben. Als u een gegevenstype voor variabele lengte opgeeft, moet u ook de maximale grootte opgeven.

Van toepassing op

Zie ook