SqlCommand.Prepare Méthode

Définition

Crée une version préparée de la commande sur une instance 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 ()

Implémente

Exemples

L'exemple suivant illustre l'utilisation de la méthode 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

Remarques

Si CommandType est défini sur StoredProcedure, l’appel à Prepare doit aboutir, bien qu’il puisse provoquer une absence d’opération.If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may cause a no-op.

Avant d’appeler Prepare, spécifiez le type de données de chaque paramètre dans l’instruction à préparer.Before you call Prepare, specify the data type of each parameter in the statement to be prepared. Pour chaque paramètre dont le type de données est de longueur variable, vous devez définir la propriété Size sur la taille maximale nécessaire.For each parameter that has a variable length data type, you must set the Size property to the maximum size needed. Prepare retourne une erreur si ces conditions ne sont pas remplies.Prepare returns an error if these conditions are not met.

Notes

Si le contexte de base de données est modifié en exécutant l’instruction Transact-SQL USE <database>, ou en appelant la méthode ChangeDatabase, Prepare doit être appelé une deuxième fois.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 vous appelez une méthode Execute après l’appel de Prepare, toute valeur de paramètre supérieure à la valeur spécifiée par la propriété Size est automatiquement tronquée à la taille d’origine spécifiée du paramètre et aucune erreur de troncation n’est retournée.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.

Les paramètres de sortie (qu’ils soient préparés ou non) doivent avoir un type de données spécifié par l’utilisateur.Output parameters (whether prepared or not) must have a user-specified data type. Si vous spécifiez un type de données de longueur variable, vous devez également spécifier la Sizemaximale.If you specify a variable length data type, you must also specify the maximum Size.

Avant Visual Studio 2010, Prepare levé une exception.Prior to Visual Studio 2010, Prepare threw an exception. À compter de Visual Studio 2010, cette méthode ne lève pas d’exception.Beginning in Visual Studio 2010, this method does not throw an exception.

S’applique à

Voir aussi