OleDbCommand.Prepare Metod

Definition

Skapar en förberedd (eller kompilerad) version av kommandot på datakällan.

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

Implementeringar

Undantag

Är Connection inte inställt.

-eller-

Är Connection inte öppen.

Exempel

I följande exempel skapas en OleDbCommand och öppnas anslutningen. Exemplet förbereder sedan en lagrad procedur på datakällan genom att skicka en sträng som är en SQL SELECT-instruktion och en sträng som ska användas för att ansluta till datakällan.

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

Kommentarer

Om egenskapen är inställd på CommandTypeTableDirect, Prepare gör ingenting. Om CommandType är inställt på StoredProcedureska anropet till Prepare lyckas, även om det kan orsaka en no-op.

Innan du anropar Prepareanger du datatypen för varje parameter i instruktionen som ska förberedas. För varje parameter som har en datatyp med variabel längd måste du ange egenskapen Storlek till den maximala storlek som behövs. Prepare returnerar ett fel om dessa villkor inte uppfylls.

Om du anropar en Execute metod efter anropet Preparetrunkeras alla parametervärden som är större än det värde som anges av egenskapen Storlek automatiskt till den ursprungliga angivna storleken på parametern och inga trunkeringsfel returneras.

Utdataparametrar (oavsett om de är förberedda eller inte) måste ha en användardefinerad datatyp. Om du anger en datatyp för variabel längd måste du också ange den maximala storleken.

Gäller för

Se även