SqlCommand.ExecuteNonQuery Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Ejecuta una instrucción de Transact-SQL en la conexión y devuelve el número de filas afectadas.
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.
Implementaciones
Excepciones
Se usó un SqlDbType valor distinto de Binary o VarBinary cuando Value se estableció Streamen . Para obtener más información sobre el streaming, vea Compatibilidad de transmisión de datos de SqlClient.
o bien
Se usó un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml cuando Value se estableció TextReaderen .
o bien
Se usó un SqlDbType valor distinto de Xml cuando Value se estableció XmlReaderen .
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.
Se produjo un error en un objeto Stream, XmlReader o TextReader 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 objeto Stream, 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.
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 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 DataSet mediante 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.