IDbCommand.Prepare Método

Definição

Cria uma versão preparada (ou compilada) do comando na fonte de dados.Creates a prepared (or compiled) version of the command on the data source.

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

Exceções

O Connection não foi definido.The Connection is not set.

- ou --or- O Connection não é Open().The Connection is not Open().

Exemplos

O exemplo a seguir cria uma instância da classe derivada, OleDbCommand e abre a conexão.The following example creates an instance of the derived class, OleDbCommand, and opens the connection. Em seguida, o exemplo prepara um procedimento armazenado na fonte de dados, passando uma cadeia de caracteres que é uma instrução SQL SELECT e uma cadeia de caracteres a ser usada para se conectar à fonte de dados.The example then prepares a stored procedure on the data source by passing a string that is a 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

Comentários

Se a CommandType propriedade for definida como TableDirect , Prepare não fará nada.If the CommandType property is set to TableDirect, Prepare does nothing. Se CommandType é definido como StoredProcedure , a chamada para Prepare deve ter sucesso, embora isso possa resultar em uma operação não operacional.If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may result in a no-op. O servidor armazena em cache automaticamente os planos para reutilização conforme necessário; Portanto, não há necessidade de chamar esse método diretamente no aplicativo cliente.The server automatically caches plans for reuse as necessary; therefore, there is no need to call this method directly in your client application.

Aplica-se a