OleDbCommand.Prepare Metoda

Definicja

Tworzy przygotowaną (lub skompilowana) wersję polecenia w źródle danych.

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

Implementuje

Wyjątki

Nie ustawiono parametru Connection .

-lub-

Element Connection nie jest otwarty.

Przykłady

W poniższym przykładzie zostanie utworzone połączenie OleDbCommand i zostanie otwarte połączenie. Następnie przykład przygotowuje procedurę składowaną w źródle danych, przekazując ciąg, który jest instrukcją SQL SELECT i ciągiem służącym do nawiązywania połączenia ze źródłem danych.

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

Uwagi

Jeśli właściwość jest ustawiona CommandType na TableDirectwartość , Prepare nic nie robi. Jeśli CommandType ustawiono wartość StoredProcedure, wywołanie powinno zakończyć się Prepare powodzeniem, chociaż może to spowodować brak operacji.

Przed wywołaniem Preparemetody określ typ danych każdego parametru w instrukcji do przygotowania. Dla każdego parametru, który ma typ danych o zmiennej długości, należy ustawić właściwość Size na wymagany maksymalny rozmiar. Prepare zwraca błąd, jeśli te warunki nie zostaną spełnione.

Jeśli wywołasz metodę po wywołaniu Preparemetody , każda wartość parametru, która jest większa niż wartość określona przez właściwość Size, zostanie automatycznie obcięta Execute do oryginalnego określonego rozmiaru parametru i nie zostaną zwrócone żadne błędy obcięcia.

Parametry wyjściowe (niezależnie od tego, czy są przygotowane), muszą mieć określony przez użytkownika typ danych. Jeśli określisz typ danych o zmiennej długości, musisz również określić maksymalny rozmiar.

Dotyczy

Zobacz też