returns - sqlcommand c# ejemplos
Obtenga filas afectadas en ExecuteNonQuery (3)
Si ejecuta el SQL de su pregunta en un SqlCommand
y comprueba el valor de retorno de ExecuteNonQuery
, debería decirle cuántos registros se vieron afectados.
De la documentation :
Valor de retorno
Tipo: System.Int32
El número de filas afectadas.
Actualmente estoy trabajando en un proyecto de C # y estoy ejecutando una consulta de inserción que también hace una selección al mismo tiempo, por ejemplo:
INSERT INTO table (SELECT * FROM table WHERE column=date)
¿Hay alguna manera de ver cuántas filas se insertaron durante esta consulta?
Si ejecuta una gran cantidad de ExecuteNonQuery () y los comete todos de una vez, puede obtener el número total de cambios después de la conexión leyendo el valor de retorno de "SELECT total_changes ();"
La función para obtener los cambios totales:
public static long GetTotalChanges(SQLiteConnection m_dbConnection)
{
string sql = "SELECT total_changes();";
using (SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection))
{
using (SQLiteDataReader reader = command.ExecuteReader())
{
reader.Read();
return (long)reader[0];
}
}
}
Úselo en otra función:
public static long MyBulkInserts()
{
using (SQLiteConnection m_dbConnection = new SQLiteConnection())
{
m_dbConnection.Open();
using (var cmd = new SQLiteCommand(m_dbConnection))
{
using (var transaction = m_dbConnection.BeginTransaction())
{
//loop of bulk inserts
{
cmd.ExecuteNonQuery();
}
transaction.Commit();
}
}
return GetTotalChanges(m_dbConnection);
}
}
ExecuteNonQuery
- devuelve el número de filas afectadas.
SqlCommand comm;
// other codes
int numberOfRecords = comm.ExecuteNonQuery();