Ejecutando y devolviendo dos consultas al mismo tiempo.
Quiero mostrar los datos de la siguiente manera: imagen
Estaba extrayendo los detalles de las tablas de postgres con el controlador home de esta forma:
public IActionResult AllTransactionsList(DateTime startDate, DateTime endDate)
{
var dataset = new DataSet();
using var connection = new NpgsqlConnection(connString);
connection.Open();
Console.WriteLine(startDate);
var query = String.Format(@"SELECT accounts.account,accounts.type,DATE(transactions.date),transactions.transactionid,transactions.amount,transactions.note FROM transactions FULL JOIN accounts ON transactions.accountid=accounts.accountid WHERE transactions.date BETWEEN '{0}' AND '{1}' ORDER BY transactions.date;", startDate, endDate);
string mainQuery = String.Format(@"SELECT sum(amount) FROM transactions INNER JOIN accounts ON transactions.accountid=accounts.accountid WHERE accounts.type='income' AND transactions.date BETWEEN '{0}' AND '{1}'", startDate,endDate);
using var mainCommand = new NpgsqlCommand(query, connection);
decimal mainResult = mainCommand.ExecuteNonQuery();
using (var command = new NpgsqlCommand(query, connection))
{
var adapter = new NpgsqlDataAdapter(command);
adapter.Fill(dataset);
}
return View(dataset);
}
pero también necesito mostrar los ingresos/gastos que están en la parte de abajo imagen
¿Cómo puedo obtener datos de dos consultas al mismo tiempo y ponerlos en un conjunto de datos?
Es decir, tengo dos consultas (query, mainResult). Obtendré filas de query y obtendré un valor decimal de main result. Necesito devolver ambos en la vista.
¿Cómo puedo lograr esto? ¿Alguien puede ayudarme, por favor?
davy.ai
Para lograr mostrar datos de dos consultas al mismo tiempo, puedes crear una clase de modelo que contenga tanto los datos consultados como el resultado principal. Por ejemplo:
En tu acción del controlador, consulta tanto los datos de transacciones como el resultado principal por separado, y luego asígnalos a una instancia de
TransactionsViewModel
, de la siguiente manera:En tu vista, puedes acceder tanto a los datos de transacciones como al resultado principal de la siguiente manera: