Condividi tramite


OleDbCommand.Prepare Metodo

Definizione

Crea una versione preparata o compilata del comando nell'origine dati.

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

Implementazioni

Eccezioni

La proprietà Connection non è impostata.

-oppure-

La proprietà Connection non è aperta.

Esempio

L'esempio seguente crea un oggetto OleDbCommand e apre la connessione. Nell'esempio viene quindi preparata una stored procedure nell'origine dati passando una stringa che è un'istruzione SQL SELECT e una stringa da usare per connettersi all'origine dati.

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

Commenti

Se la CommandType proprietà è impostata su TableDirect, Prepare non fa nulla. Se CommandType è impostato su StoredProcedure, la chiamata a Prepare deve avere esito positivo, anche se può causare un no-op.

Prima di chiamare Prepare, specificare il tipo di dati di ogni parametro nell'istruzione da preparare. Per ogni parametro con tipo di dati di lunghezza variabile, è necessario impostare la proprietà Size sulla dimensione massima necessaria. Prepare restituisce un errore se queste condizioni non vengono soddisfatte.

Se si chiama un Execute metodo dopo aver chiamato Prepare, qualsiasi valore di parametro maggiore del valore specificato dalla proprietà Size viene troncato automaticamente alla dimensione specificata originale del parametro e non vengono restituiti errori di troncamento.

I parametri di output (se preparati o meno) devono avere un tipo di dati specificato dall'utente. Se si specifica un tipo di dati di lunghezza variabile, è necessario specificare anche la dimensione massima.

Si applica a

Vedi anche