OleDbCommand.Prepare Метод

Определение

Создает подготовленную (или скомпилированную) версию команды в источнике данных.Creates a prepared (or compiled) version of the command on the data source.

public:
 virtual void Prepare();
public void Prepare ();
override this.Prepare : unit -> unit
Public Sub Prepare ()

Реализации

Исключения

Connection не указывается.The Connection is not set.

- или --or- Подключение Connection не открыто.The Connection is not open.

Примеры

В следующем примере создается OleDbCommand и открывается соединение.The following example creates an OleDbCommand and opens the connection. Затем в примере выполняется подготовка хранимой процедуры к источнику данных путем передачи строки, которая является инструкцией SQL SELECT, и строки, используемой для подключения к источнику данных.The example then prepares a stored procedure on the data source by passing a string that is an SQL SELECT statement and a string to use to connect to the data source.

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 не выполняет никаких действий.If the CommandType property is set to TableDirect, Prepare does nothing. Если CommandType имеет значение StoredProcedure, вызов Prepare должен быть выполнен, хотя это может привести к отсутствию операций.If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may cause a no-op.

Перед вызовом Prepareукажите тип данных каждого параметра в инструкции, подготове к работе.Before you call Prepare, specify the data type of each parameter in the statement to be prepared. Для каждого параметра, имеющего тип данных переменной длины, необходимо задать для свойства size максимальный требуемый размер.For each parameter that has a variable length data type, you must set the Size property to the maximum size needed. Prepare возвращает ошибку, если эти условия не выполняются.Prepare returns an error if these conditions are not met.

При вызове метода Execute после вызова Prepareлюбое значение параметра, превышающее значение, заданное свойством size , автоматически усекается до исходного указанного размера параметра, и ошибки усечения не возвращаются.If you call an Execute method after you call Prepare, any parameter value that is larger than the value specified by the Size property is automatically truncated to the original specified size of the parameter, and no truncation errors are returned.

Выходные параметры (как подготовленные, так и нет) должны иметь определяемый пользователем тип данных.Output parameters (whether prepared or not) must have a user-specified data type. Если указан тип данных переменной длины, необходимо также указать максимальный Размер.If you specify a variable length data type, you must also specify the maximum Size.

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

Дополнительно