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 Transact-SQL en la conexión y devuelve el número de filas afectadas.
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
Devoluciones
Número de filas afectadas.
Implementaciones
Excepciones
Se usó un SqlDbType valor distinto de Binary o VarBinary cuando Value se estableció en Stream. Para obtener más información sobre el streaming, consulte Compatibilidad con streaming de SqlClient.
O bien
Se usó un SqlDbType valor distinto de Char, NChar, NVarChar, VarChar o Xml cuando Value se estableció en TextReader.
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 en una fila bloqueada. Esta excepción no se genera cuando se usa Microsoft .NET Framework versión 1.0.
O bien
Se ha agotado el tiempo de espera durante una operación de streaming. Para obtener más información sobre el streaming, consulte Compatibilidad con streaming de SqlClient.
Error en un Streamobjeto , XmlReader o TextReader durante una operación de streaming. Para obtener más información sobre el streaming, consulte Compatibilidad con streaming de SqlClient.
Cerrado SqlConnection o quitado durante una operación de streaming. Para obtener más información sobre el streaming, consulte Compatibilidad con streaming de SqlClient.
El Streamobjeto , XmlReader o TextReader se cerró durante una operación de streaming. Para obtener más información sobre el streaming, consulte Compatibilidad con streaming 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 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.
En el caso de las instrucciones UPDATE, INSERT y DELETE, el valor devuelto es el número de filas afectadas por el comando. Para todos los demás tipos de instrucciones, el valor devuelto es -1.
Cuando existe un desencadenador en una tabla que se inserta o actualiza, 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.