SqlCommand.Prepare Método

Definição

Cria uma versão preparada do comando numa instância do SQL Server.

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

Implementações

Exemplos

O exemplo a seguir demonstra o uso do Prepare método.

private static void SqlCommandPrepareEx(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand command = new SqlCommand(null, connection);

        // Create and prepare an SQL statement.
        command.CommandText =
            "INSERT INTO Region (RegionID, RegionDescription) " +
            "VALUES (@id, @desc)";
        SqlParameter idParam = new SqlParameter("@id", SqlDbType.Int, 0);
        SqlParameter descParam =
            new SqlParameter("@desc", SqlDbType.Text, 100);
        idParam.Value = 20;
        descParam.Value = "First Region";
        command.Parameters.Add(idParam);
        command.Parameters.Add(descParam);

        // Call Prepare after setting the Commandtext and Parameters.
        command.Prepare();
        command.ExecuteNonQuery();

        // Change parameter values and call ExecuteNonQuery.
        command.Parameters[0].Value = 21;
        command.Parameters[1].Value = "Second Region";
        command.ExecuteNonQuery();
    }
}
Private Sub SqlCommandPrepareEx(ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()
        Dim command As New SqlCommand("", connection)

        ' Create and prepare an SQL statement.
        command.CommandText = _
           "INSERT INTO Region (RegionID, RegionDescription) " & _
           "VALUES (@id, @desc)"
        Dim idParam As SqlParameter = _
            New SqlParameter("@id", SqlDbType.Int, 0)
        Dim descParam As SqlParameter = _
            New SqlParameter("@desc", SqlDbType.Text, 100)
        idParam.Value = 20
        descParam.Value = "First Region"
        command.Parameters.Add(idParam)
        command.Parameters.Add(descParam)

        ' Call Prepare after setting the Commandtext and Parameters.
        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

Observações

Se CommandType for definido para StoredProcedure, a chamada a Prepare deve ter sucesso, embora possa causar um no-op.

Antes de chamar Prepare, especifique o tipo de dados de cada parâmetro na instrução a ser preparada. Para cada parâmetro que tenha um tipo de dado de comprimento variável, deve definir a Size propriedade para o tamanho máximo necessário. Prepare devolve um erro se estas condições não forem cumpridas.

Note

Se o contexto da base de dados for alterado ao executar a instrução Transact-SQL USE <database>, ou ao chamar o método ChangeDatabase, então Prepare deve ser chamado uma segunda vez.

Se chamar um Execute método após chamar Prepare, qualquer valor de parâmetro maior do que o especificado pela Size propriedade é automaticamente truncado para o tamanho original especificado do parâmetro, e não são retornados erros de truncamento.

Os parâmetros de saída (estejam preparados ou não) devem ter um tipo de dado especificado pelo utilizador. Se especificar um tipo de dado de comprimento variável, deve também especificar o máximo Size.

Antes de Visual Studio 2010, Prepare lançou uma exceção. A partir do Visual Studio 2010, este método não faz exceções.

Aplica-se a

Ver também