Compartilhar via


OleDbCommand.Prepare Método

Definição

Cria uma versão preparada (ou compilada) do comando na fonte de dados.

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

Implementações

Exceções

O Connection não foi definido.

- ou -

O Connection não está aberto.

Exemplos

O exemplo a seguir cria um OleDbCommand e abre a conexão. 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.

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 estiver definida TableDirectcomo , Prepare não fará nada. Se CommandType for definido StoredProcedurecomo , a chamada para Prepare deverá ter êxito, embora possa causar uma não operação.

Antes de chamar , especifique Prepareo tipo de dados de cada parâmetro na instrução a ser preparada. Para cada parâmetro que tem um tipo de dados de comprimento variável, você deve definir a propriedade Size como o tamanho máximo necessário. Prepare retornará um erro se essas condições não forem atendidas.

Se você chamar um Execute método depois de chamar Prepare, qualquer valor de parâmetro maior que o valor especificado pela propriedade Size será truncado automaticamente para o tamanho original especificado do parâmetro e nenhum erro de truncamento será retornado.

Os parâmetros de saída (preparados ou não) devem ter um tipo de dados especificado pelo usuário. Se você especificar um tipo de dados de comprimento variável, também deverá especificar o Tamanho máximo.

Aplica-se a

Confira também