Mise à jour des données dans une source de données
S'applique à : .NET Framework .NET .NET Standard
Les instructions SQL qui modifient les données (comme INSERT, UPDATE ou DELETE) ne retournent pas de ligne. De même, de nombreuses procédures stockées effectuent une action mais ne retournent pas de ligne. Pour exécuter des commandes qui ne retournent pas de ligne, créez un objet Commande avec la commande SQL appropriée et un objet Connexion incluant tous les Paramètres requis. Exécutez la commande avec la méthode ExecuteNonQuery de l’objet SqlCommand.
Notes
La méthode ExecuteNonQuery retourne un entier qui représente le nombre de lignes affectées par l'instruction ou la procédure stockée exécutée. Si plusieurs instructions sont exécutées, la valeur retournée est la somme des enregistrements affectés par toutes ces instructions.
Exemple
L'exemple de code suivant exécute une instruction INSERT pour insérer un enregistrement dans une base de données à l'aide de ExecuteNonQuery.
// Assumes connection is a valid SqlConnection.
connection.Open();
string queryString = "INSERT INTO Customers " +
"(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
SqlCommand command = new SqlCommand(queryString, connection);
Int32 recordsAffected = command.ExecuteNonQuery();
L'exemple de code suivant exécute la procédure stockée créée par l'exemple de code dans Exécution des opérations de catalogue. Aucune ligne n'est retournée par la procédure stockée, la méthode ExecuteNonQuery est donc utilisée mais la procédure stockée reçoit un paramètre d'entrée et retourne un paramètre de sortie et une valeur de retour.
// Assumes command is a valid SqlCommand with an open connection.
command.CommandText = "InsertCategory";
command.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = command.Parameters.Add("@RowCount", SqlDbType.Int);
parameter.Direction = ParameterDirection.ReturnValue;
parameter = command.Parameters.Add("@CategoryName", SqlDbType.NChar, 15);
parameter = command.Parameters.Add("@Identity", SqlDbType.Int);
parameter.Direction = ParameterDirection.Output;
command.Parameters["@CategoryName"].Value = "New Category";
command.ExecuteNonQuery();
Int32 categoryID = (Int32) command.Parameters["@Identity"].Value;
Int32 rowCount = (Int32) command.Parameters["@RowCount"].Value;