Comparteix a través de


OleDbCommand.Prepare Método

Definición

Crea una versión preparada (o compilada) del comando en el origen de datos.

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

Implementaciones

Excepciones

Connection no está establecido.

o bien

Connection no está abierta.

Ejemplos

En el ejemplo siguiente se crea y OleDbCommand se abre la conexión. A continuación, el ejemplo prepara un procedimiento almacenado en el origen de datos pasando una cadena que es una instrucción SELECT de SQL y una cadena que se va a usar para conectarse al origen de datos.

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

Comentarios

Si la CommandType propiedad se establece TableDirecten , Prepare no hace nada. Si CommandType se establece StoredProcedureen , la llamada a Prepare debe realizarse correctamente, aunque puede provocar una operación sin operación.

Antes de llamar a Prepare, especifique el tipo de datos de cada parámetro de la instrucción que se va a preparar. Para cada parámetro que tenga un tipo de datos de longitud variable, debe establecer la propiedad Size en el tamaño máximo necesario. Prepare devuelve un error si no se cumplen estas condiciones.

Si llama a un Execute método después de llamar a Prepare, cualquier valor de parámetro mayor que el valor especificado por la propiedad Size se trunca automáticamente al tamaño especificado original del parámetro y no se devuelven errores de truncamiento.

Los parámetros de salida (ya sean preparados o no) deben tener un tipo de datos especificado por el usuario. Si especifica un tipo de datos de longitud variable, también debe especificar el tamaño máximo.

Se aplica a

Consulte también