SqlCommand.ExecuteNonQuery Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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-
Un SqlDbType oggetto diverso da Char, NChar, NVarChar, VarChar o Xml è stato usato quando Value è stato 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 usare 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 viene 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 interrompono il contributo 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.