SqlCommand.ExecuteNonQuery Metodo

Definizione

Permette di eseguire un'istruzione Transact-SQL in base alla connessione e restituisce un numero di righe modificate.

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

Restituisce

Int32

Numero di righe interessate.

Implementazioni

Eccezioni

È stato usato un valore SqlDbType diverso da Binary o VarBinary quando Value era impostato su Stream. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

-oppure-

È stato usato un valore SqlDbType diverso da Char, NChar, NVarChar, VarChar o Xml quando Value era impostato su TextReader.

-oppure-

È stato usato un valore SqlDbType diverso da Xml quando Value era impostato su XmlReader.

È stata generata un'eccezione durante l'esecuzione del comando su una riga bloccata. Tale eccezione non viene generata quando si usa Microsoft .NET Framework Versione 1.0.

-oppure-

Si è verificato un timeout durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

Errore nell'oggetto Stream, XmlReader o TextReader durante un'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

L'elemento SqlConnection chiuso o eliminato durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

L'oggetto Stream, XmlReader o TextReader è stato chiuso durante l'operazione di flusso. Per altre informazioni sul flusso, vedere Supporto del flusso SqlClient.

Esempio

Nell'esempio seguente viene creato un oggetto SqlCommand e quindi viene eseguito usando ExecuteNonQuery. Nell'esempio viene passata una stringa che è un'istruzione Transact-SQL (ad esempio UPDATE, INSERT o DELETE) e una stringa da utilizzare per connettersi all'origine dati.

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();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

Commenti

È possibile utilizzare per ExecuteNonQuery eseguire operazioni di catalogo, ad esempio per eseguire query sulla struttura di un database o per creare oggetti di database, ad esempio tabelle, oppure per modificare i dati in un database senza utilizzare un DataSet oggetto eseguendo istruzioni UPDATE, INSERT o DELETE.

Anche se non ExecuteNonQuery restituisce righe, i parametri di output o i valori restituiti mappati ai parametri vengono popolati con i dati.

Nel caso delle istruzioni UPDATE, INSERT e DELETE, il valore restituito è il numero di righe interessate dal comando. Per tutti gli altri tipi di istruzioni, il valore restituito è -1.

Quando un trigger esiste in una tabella da inserire o aggiornare, il valore restituito include il numero di righe interessate dall'operazione di inserimento o aggiornamento e dal numero di righe interessate dal trigger o dai trigger.

Quando SET NOCOUNT ON è impostato sulla connessione (prima o come parte dell'esecuzione del comando o come parte di un trigger avviato dall'esecuzione del comando) le righe interessate dalle singole istruzioni smettono di contribuire al conteggio delle righe interessate da questo metodo.

Se non vengono rilevate istruzioni che contribuiscono al conteggio, il valore restituito è -1. Se si verifica un rollback, anche il valore restituito è -1.

Si applica a

Vedi anche