Share via


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.

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

Devoluciones

El número de filas afectadas.

Excepciones

Se usó un SqlDbType valor distinto de Binary o VarBinary cuando Value se estableció Stream en . Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

o bien

Un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml se usó cuando Value se estableció TextReader en .

O bien

Se usó un SqlDbType valor distinto de Xml cuando Value se estableció en XmlReader .

Se produjo una excepción al ejecutar el comando contra una fila bloqueada. Esta excepción no se genera cuando se usa Microsoft .NET Framework versión 1.0.

o bien

Se agotó el tiempo de espera durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

Error en un Stream objeto o XmlReaderTextReader durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

La SqlConnection se cerró o se interrumpió durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

El Stream objeto , XmlReader o TextReader se cerró durante una operación de streaming. Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.

Ejemplos

En el ejemplo siguiente se crea y SqlCommand , a continuación, se ejecuta mediante ExecuteNonQuery. El ejemplo se pasa una cadena que es una instrucción Transact-SQL (como UPDATE, INSERT o DELETE) y una cadena que se va a usar para conectarse al origen de datos.

// <Snippet1>
using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandCS
{
    class Program
    {
        static void Main()
        {
            string str = "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
            string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
            CreateCommand(qs, str);
        }
        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();
            }
        }
    }
}
// </Snippet1>

Comentarios

Puede usar ExecuteNonQuery para realizar operaciones de catálogo (por ejemplo, consultar la estructura de una base de datos o crear objetos de base de datos como tablas) o cambiar los datos de una base de datos sin usar mediante DataSet la ejecución de instrucciones UPDATE, INSERT o DELETE.

Aunque no ExecuteNonQuery devuelve ninguna fila, los parámetros de salida o los valores devueltos asignados a los parámetros se rellenan con datos.

Para las instrucciones UPDATE, INSERT y DELETE, el valor devuelto corresponde al número de filas afectadas por el comando. Para los demás tipos de instrucciones, el valor devuelto es -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. 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 instrucciones individuales dejan de contribuir al recuento de filas afectadas por este método. Si no se detecta ninguna instrucción que contribuya al recuento, el valor devuelto es -1. Si se produce una reversión, el valor devuelto también es -1.

Se aplica a