SqlCommand.Prepare SqlCommand.Prepare SqlCommand.Prepare SqlCommand.Prepare Method

Definición

Crea una versión preparada del comando en una instancia de SQL Server.Creates a prepared version of the command on an instance of SQL Server.

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

Implementaciones

Ejemplos

En el siguiente ejemplo se muestra el uso del método Prepare.The following example demonstrates the use of the Prepare method.

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

Comentarios

Si CommandType se establece en StoredProcedure, la llamada a Prepare debe realizarse correctamente, aunque puede producirse una operación no operativa.If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may cause a no-op.

Antes de llamar Preparea, especifique el tipo de datos de cada parámetro de la instrucción que se va a preparar.Before you call Prepare, specify the data type of each parameter in the statement to be prepared. Para cada parámetro que tenga un tipo de datos de longitud variable, debe establecer Size la propiedad en el tamaño máximo necesario.For each parameter that has a variable length data type, you must set the Size property to the maximum size needed. PrepareDevuelve un error si no se cumplen estas condiciones.Prepare returns an error if these conditions are not met.

Nota

Si se cambia el contexto de la base de datos mediante la ejecución USE <database> de la instrucción de Transact- ChangeDatabase SQL o llamando Prepare al método, debe llamarse una segunda vez.If the database context is changed by executing the Transact-SQL USE <database> statement, or by calling the ChangeDatabase method, then Prepare must be called a second time.

Si llama a un Execute método después de Preparellamar a, cualquier valor de parámetro que sea mayor que el valor Size especificado por la propiedad se trunca automáticamente al tamaño especificado original del parámetro y no se producen errores de truncamiento. Devuelve.If you call an Execute method after calling Prepare, any parameter value that is larger than the value specified by the Size property is automatically truncated to the original specified size of the parameter, and no truncation errors are returned.

Los parámetros de salida (ya sean preparados o no) deben tener un tipo de datos especificado por el usuario.Output parameters (whether prepared or not) must have a user-specified data type. Si especifica un tipo de datos de longitud variable, también debe especificar el máximo Size.If you specify a variable length data type, you must also specify the maximum Size.

Antes de Visual Studio 2010, Prepare se producía una excepción.Prior to Visual Studio 2010, Prepare threw an exception. A partir de Visual Studio 2010, este método no produce una excepción.Beginning in Visual Studio 2010, this method does not throw an exception.

Se aplica a

Consulte también: