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


IDbCommand.Prepare Метод

Определение

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

public:
 void Prepare();
public void Prepare();
abstract member Prepare : unit -> unit
Public Sub Prepare ()

Исключения

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

–или–

Это Connection не Open()так.

Примеры

В следующем примере создается экземпляр производного класса 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. Сервер автоматически кэширует планы повторного использования по мере необходимости; таким образом, не нужно вызывать этот метод непосредственно в клиентском приложении.

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