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.
Esegue un'istruzione Transact-SQL sulla connessione e restituisce il numero di righe interessate.
public:
virtual int ExecuteNonQuery();
public:
override int ExecuteNonQuery();
public int ExecuteNonQuery();
public override int ExecuteNonQuery();
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Function ExecuteNonQuery () As Integer
Public Overrides Function ExecuteNonQuery () As Integer
Valori restituiti
Numero di righe interessate.
Implementazioni
Eccezioni
È stato usato un SqlDbType oggetto diverso da Binary o VarBinary quando Value è stato impostato su Stream. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
oppure
È stato usato un SqlDbType valore diverso da Char, NChar, NVarChar, VarChar o Xml quando Value è stato impostato su TextReader.
oppure
È stato utilizzato un SqlDbType oggetto diverso da Xml quando Value è stato impostato su XmlReader.
Eccezione durante l'esecuzione del comando su una riga bloccata. Questa eccezione non viene generata quando si usa Microsoft .NET Framework versione 1.0.
oppure
Si è verificato un timeout durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Si è verificato un errore in un StreamXmlReader oggetto o TextReader durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Oggetto SqlConnection chiuso o eliminato durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
L'oggetto Streamo XmlReaderTextReader è stato chiuso durante un'operazione di streaming. Per altre informazioni sullo streaming, vedere Supporto per lo streaming sqlClient.
Esempio
Nell'esempio seguente viene creato un SqlCommand oggetto e quindi 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 ExecuteNonQuery per eseguire operazioni di catalogo, ad esempio per eseguire query sulla struttura di un database o per creare oggetti di database come 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.
Per le 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 non contribuiscono 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, il valore restituito è anche -1.