SqlCommand.ExecuteNonQuery Método

Definición

Ejecuta una instrucción de Transact-SQL en la conexión y devuelve el número de filas afectadas.Executes a Transact-SQL statement against the connection and returns the number of rows affected.

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

Devoluciones

El número de filas afectadas.The number of rows affected.

Implementaciones

Excepciones

Un valor SqlDbType distinto a Binary o VarBinary se usó cuando Value se estableció en Stream.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

o bien-or-

Un valor SqlDbType distinto a Char, NChar, NVarChar, VarChar o Xml se usó cuando Value se estableció en TextReader.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

o bien-or-

Se usó un SqlDbType distinto de Xml cuando Value se estableció en XmlReader.A SqlDbType other than Xml was used when Value was set to XmlReader.

Se produjo una excepción al ejecutar el comando contra una fila bloqueada.An exception occurred while executing the command against a locked row. Esta excepción no se genera cuando se usa Microsoft .NET Framework versión 1.0.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

O bien-or-

Se agotó el tiempo de espera durante una operación de streaming.A timeout occurred during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

Se produjo un error en un objeto Stream, XmlReader o TextReader durante una operación de streaming.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

La SqlConnection se cerró o se interrumpió durante una operación de streaming.The SqlConnection closed or dropped during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

El objeto Stream, XmlReader o TextReader se cerró durante una operación de streaming.The Stream, XmlReader or TextReader object was closed during a streaming operation. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.For more information about streaming, see SqlClient Streaming Support.

Ejemplos

En el ejemplo siguiente se crea un SqlCommand y, a continuación, se ejecuta con ExecuteNonQuery.The following example creates a SqlCommand and then executes it using ExecuteNonQuery. En el ejemplo se pasa una cadena que es una instrucción de Transact-SQL (como UPDATE, INSERT o DELETE) y una cadena que se utiliza para conectar con el origen de datos.The example is passed a string that is a Transact-SQL statement (such as UPDATE, INSERT, or DELETE) and a string to use to connect to the data source.

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

Comentarios

Puede utilizar la ExecuteNonQuery para realizar operaciones de catálogo (por ejemplo, para consultar la estructura de una base de datos o para crear objetos de base de datos como tablas) o para cambiar los datos de una base de datos sin utilizar un DataSet ejecutando instrucciones UPDATE, INSERT o DELETE.You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements.

Aunque el ExecuteNonQuery no devuelve ninguna fila, los parámetros de salida o los valores devueltos asignados a los parámetros se rellenan con datos.Although the ExecuteNonQuery returns no rows, any output parameters or return values mapped to parameters are populated with data.

Para las instrucciones UPDATE, INSERT y DELETE, el valor devuelto corresponde al número de filas afectadas por el comando.For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. Para los demás tipos de instrucciones, el valor devuelto es -1.For all other types of statements, the return value is -1.

Cuando existe un desencadenador en una tabla que se va a insertar o actualizar, el valor devuelto incluye el número de filas afectadas por la operación de inserción o actualización y el número de filas afectadas por el desencadenador o desencadenadores.When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers.

Cuando SET NOCOUNT ON se establece en la conexión (antes o como parte de la ejecución del comando, o como parte de un desencadenador Iniciado por la ejecución del comando), las filas afectadas por las instrucciones individuales dejan de contribuir al recuento de filas afectadas que devuelve este m étodo.When SET NOCOUNT ON is set on the connection (before or as part of executing the command, or as part of a trigger initiated by the execution of the command) the rows affected by individual statements stop contributing to the count of rows affected that is returned by this method.

Si no se detecta ninguna instrucción que contribuya al recuento, el valor devuelto es-1.If no statements are detected that contribute to the count, the return value is -1. Si se produce una reversión, el valor devuelto también es-1.If a rollback occurs, the return value is also -1.

Se aplica a

Consulte también: