SqlCommand.Prepare Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée une version préparée de la commande sur une instance de SQL Server.
public:
override void Prepare();
public override void Prepare();
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()
Exemples
L'exemple suivant illustre l'utilisation de la méthode Prepare.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
namespace SqlCommand_Prepare
{
class Program
{
static void Main()
{
string connectionString = "Persist Security Info=False;Integrated Security=SSPI;database=Northwind;server=(local)";
SqlCommandPrepareEx(connectionString);
Console.ReadLine();
}
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();
}
}
Remarques
Si CommandType la valeur est définie StoredProcedure, l’appel doit Prepare réussir, bien qu’il puisse provoquer une no-op.
Avant d’appeler Prepare, spécifiez le type de données de chaque paramètre de 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.
Note
Si le contexte de base de données est modifié en exécutant l’instruction Transact-SQL USE <database> ou en appelant la ChangeDatabase méthode, vous Prepare devez appeler une deuxième fois.
Si vous appelez une Execute méthode après l’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 à l’exception du vecteur, vous devez également spécifier la valeur maximale Size.
Pour les types de données vectorielles, la Size propriété est ignorée. La taille du vecteur est déduite du Value type SqlVector<T>.
Avant Visual Studio 2010, Prepare a levé une exception. À compter de Visual Studio 2010, cette méthode ne lève pas d’exception.