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


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 отключению операции.

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

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

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

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

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