Поделиться через


OleDbCommand.Prepare Метод

Определение

Создает подготовленную (или скомпилированную) версию команды в источнике данных.

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

Реализации

Исключения

Значение Connection не задано.

–или–

Это Connection не открыто.

Примеры

В следующем примере создается OleDbCommand и открывается подключение. Затем пример подготавливает хранимую процедуру в источнике данных, передав строку, которая является инструкцией SQL SELECT и строкой для подключения к источнику данных.

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

Комментарии

CommandType Если для свойства задано значение TableDirect, Prepare ничего не делает. Если CommandType задано значение StoredProcedure, вызов должен завершиться успешно, хотя это может привести к Prepare no-op.

Перед вызовом Prepareукажите тип данных каждого параметра в инструкции, который необходимо подготовить. Для каждого параметра, имеющего тип данных переменной длины, необходимо задать для свойства Size максимально необходимый размер. Prepare возвращает ошибку, если эти условия не выполнены.

При вызове ExecutePrepareметода любое значение параметра, превышающее значение, указанное свойством Size , автоматически усечено до исходного указанного размера параметра, и ошибки усечения не возвращаются.

Выходные параметры (подготовленные или нет) должны иметь указанный пользователем тип данных. Если указать тип данных переменной длины, необходимо также указать максимальный размер.

Применяется к

См. также раздел