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:
 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

Devoluciones

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

Implementaciones

Excepciones

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

O bien,-or-

Se usó un elemento SqlDbType distinto de Char, NChar, NVarChar, VarCharo Xml 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 elemento 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 en una fila bloqueada.An exception occurred while executing the command against a locked row. Esta excepción no se genera cuando se utiliza 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 más información sobre el streaming, vea Compatibilidad con el streaming 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 más información sobre el streaming, vea Compatibilidad con el streaming 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 más información sobre el streaming, vea Compatibilidad con el streaming de SqlClient.For more information about streaming, see SqlClient Streaming Support.

El objeto Stream, XmlReader o TextReader se cerró durante una operación de transmisión por secuencias.The Stream, XmlReader or TextReader object was closed during a streaming operation. Para más información sobre el streaming, vea Compatibilidad con el streaming 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 todos 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: