SqlCommand.Prepare Método

Definição

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

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

Exemplos

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

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

Comentários

Se CommandType estiver definido como StoredProcedure, a chamada para Prepare deverá ser bem-sucedida, 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 Size propriedade como o tamanho máximo necessário. Prepare retornará um erro se essas condições não forem atendidas.

Observação

Se o contexto do banco de dados for alterado executando a instrução Transact-SQL USE <database> ou chamando o ChangeDatabase método , deverá Prepare ser chamado uma segunda vez.

Se você chamar um Execute método depois de chamar Prepare, qualquer valor de parâmetro maior que o valor especificado pela Size propriedade 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 máximo Size.

Antes do Visual Studio 2010, Prepare gerava uma exceção. A partir do Visual Studio 2010, esse método não gera uma exceção.

Aplica-se a

Confira também