SqlCommand.ExecuteNonQuery Méthode

Définition

Exécute une instruction Transact-SQL sur la connexion et retourne le nombre de lignes affectées.

public:
 override int ExecuteNonQuery();
public override int ExecuteNonQuery ();
override this.ExecuteNonQuery : unit -> int
Public Overrides Function ExecuteNonQuery () As Integer

Retours

Nombre de lignes affectées.

Exceptions

Un SqlDbType autre que Binary ou VarBinary a été utilisé lorsque Value a été défini sur Stream . Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

- ou -

Un SqlDbType autre que Char, NChar, NVarChar, VarChar ou Xml a été utilisé quand Value a été défini sur TextReader .

-ou-

Un SqlDbType autre que Xml a été utilisé lorsque Value a été défini sur XmlReader .

Une exception s’est produite pendant l’exécution de la commande sur une ligne verrouillée. Cette exception n’est pas générée quand vous utilisez Microsoft .NET Framework version 1.0.

- ou -

Un délai d’attente a été dépassé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

Une erreur s’est produite dans un Stream objet ou XmlReaderTextReader pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

La SqlConnection a été fermée ou supprimée pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

L’objet Stream ou XmlReaderTextReader a été fermé pendant une opération de diffusion en continu. Pour plus d’informations sur le streaming, consultez Prise en charge du streaming pour SqlClient.

Exemples

L’exemple suivant crée un SqlCommand et l’exécute à l’aide de ExecuteNonQuery. L’exemple transmet une chaîne qui est une instruction Transact-SQL (telle que UPDATE, INSERT ou DELETE) et une chaîne à utiliser pour se connecter à la source de données.

// <Snippet1>
using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandCS
{
    class Program
    {
        static void Main()
        {
            string str = "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
            string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
            CreateCommand(qs, str);
        }
        private static void CreateCommand(string queryString,
            string connectionString)
        {
            using (SqlConnection connection = new SqlConnection(
                       connectionString))
            {
                SqlCommand command = new SqlCommand(queryString, connection);
                command.Connection.Open();
                command.ExecuteNonQuery();
            }
        }
    }
}
// </Snippet1>

Remarques

Vous pouvez utiliser pour effectuer des ExecuteNonQuery opérations de catalogue (par exemple, interroger la structure d’une base de données ou créer des objets de base de données tels que des tables), ou pour modifier les données d’une base de données sans utiliser d’opération DataSet en exécutant des instructions UPDATE, INSERT ou DELETE.

Bien que le ExecuteNonQuery ne retourne aucune ligne, les paramètres de sortie ou valeurs de retour mappés aux paramètres sont remplis avec des données.

Pour les instructions UPDATE, INSERT et DELETE, les valeurs de retour représentent le nombre de lignes affectées par la commande. Pour tous les autres types d'instructions, la valeur de retour est -1. Lorsqu’un déclencheur existe sur une table en cours d’insertion ou de mise à jour, la valeur de retour inclut le nombre de lignes affectées par l’opération d’insertion ou de mise à jour et le nombre de lignes affectées par le ou les déclencheurs. Lorsque SET NOCOUNT ON est défini sur la connexion (avant ou dans le cadre de l’exécution de la commande, ou dans le cadre d’un déclencheur initié par l’exécution de la commande), les lignes affectées par les instructions individuelles cessent de contribuer au nombre de lignes affectées retournées par cette méthode. Si aucune instruction ne contribue au nombre, la valeur de retour est -1. Si une restauration se produit, la valeur de retour est également -1.

S’applique à