SqlCommand.Prepare Méthode

Définition

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

Implémente

Exemples

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

Remarques

Si CommandType est défini sur StoredProcedure, l’appel à Prepare doit réussir, bien qu’il puisse provoquer une absence d’opération.

Avant d’appeler Prepare, spécifiez le type de données de chaque paramètre dans l’instruction à préparer. Pour chaque paramètre qui a un type de données de longueur variable, vous devez définir la Size propriété sur la taille maximale nécessaire. Prepare retourne une erreur si ces conditions ne sont pas remplies.

Notes

Si le contexte de la base de données est modifié en exécutant l’instruction Transact-SQL USE <database> ou en appelant la ChangeDatabase méthode , Prepare il doit être appelé une deuxième fois.

Si vous appelez une Execute méthode après avoir appelé Prepare, toute valeur de paramètre supérieure à la valeur spécifiée par la Size propriété est automatiquement tronquée à la taille spécifiée d’origine du paramètre, et aucune erreur de troncation n’est retournée.

Les paramètres de sortie (préparés ou non) doivent avoir un type de données spécifié par l’utilisateur. Si vous spécifiez un type de données de longueur variable, vous devez également spécifier la valeur maximale Size.

Avant Visual Studio 2010, Prepare lançait une exception. À compter de Visual Studio 2010, cette méthode ne lève pas d’exception.

S’applique à

Voir aussi