Sdílet prostřednictvím


OleDbCommand.Prepare Metoda

Definice

Vytvoří připravenou (nebo zkompilovanou) verzi příkazu ve zdroji dat.

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

Výjimky

Hodnota Connection není nastavená.

-nebo-

Není Connection otevřená.

Příklady

Následující příklad vytvoří OleDbCommand a otevře připojení. Příklad pak připraví uloženou proceduru ve zdroji dat předáním řetězce, který je příkazem SQL SELECT, a řetězce, který se má použít pro připojení ke zdroji dat.

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

Poznámky

CommandType Pokud je vlastnost nastavená na TableDirect, Prepare neprovede nic. Pokud CommandType je nastavená hodnota StoredProcedure, mělo by volání proběhnout Prepare úspěšně, i když to může způsobit no-op.

Před voláním Preparezadejte datový typ každého parametru v příkazu, který se má připravit. Pro každý parametr, který má datový typ s proměnnou délkou, je nutné nastavit vlastnost Size na maximální požadovanou velikost. Prepare vrátí chybu, pokud tyto podmínky nejsou splněny.

Pokud zavoláte metodu Execute po volání Prepare, jakákoli hodnota parametru, která je větší než hodnota určená Velikost vlastnost je automaticky zkrácena na původní zadanou velikost parametru a nebudou vráceny žádné chyby zkrácení.

Výstupní parametry (ať už jsou připravené nebo ne) musí mít datový typ zadaný uživatelem. Pokud zadáte datový typ s proměnnou délkou, musíte také zadat maximální velikost.

Platí pro

Viz také