C# SQL Server Data Access: Fetch Client Invoices and Date Range Records
Client Invoices and Date Range Search Methods
The following C# methods retrieve data from a SQL Server database using stored procedures and SqlDataReader.
Method 1: buscar_facturas_del_cliente
This method returns a list of invoices (facturas) for a given client ID.
public List<Factura> buscar_facturas_del_cliente(string id_cliente)
{
List<Factura> lista = new List<Factura>();
SqlCommand sqlCmm = ObtenerComando();
sqlCmm.Connection.Open();
sqlCmm.Parameters.AddWithValue("@id_cliente", id_cliente);
sqlCmm.CommandText = "buscar_facturas_del_cliente";
SqlDataReader rd = sqlCmm.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
Detalle det = new Detalle();
det.codigo_producto = rd.GetInt32(0);
det.nombre_producto = rd.GetString(1);
det.cantidad = rd.GetInt32(2);
Factura fac = new Factura();
fac._detalle = det;
fac.id = rd.GetInt32(3);
fac.folio = rd.GetString(4);
fac.fecha = rd.GetDateTime(5);
lista.Add(fac);
}
}
sqlCmm.Connection.Close();
sqlCmm.Connection.Dispose();
return lista;
}Method 2: buscar_entre_fechas
This method returns a list of records (datos) between two dates.
public List<Datos> buscar_entre_fechas(DateTime desde, DateTime hasta)
{
List<Datos> lista = new List<Datos>();
SqlCommand sqlCmm = ObtenerComando();
sqlCmm.Connection.Open();
sqlCmm.Parameters.AddWithValue("@desde", desde);
sqlCmm.Parameters.AddWithValue("@hasta", hasta);
sqlCmm.CommandText = "buscar_entre_fechas";
SqlDataReader rd = sqlCmm.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
Datos datos = new Datos();
datos.id = rd.GetInt32(0);
datos.codigo_producto = rd.GetInt32(1);
datos.nombre_producto = rd.GetString(2);
datos.cantidad = rd.GetInt32(3);
datos.folio = rd.GetString(4);
datos.fecha = rd.GetDateTime(5);
lista.Add(datos);
}
}
sqlCmm.Connection.Close();
sqlCmm.Connection.Dispose();
return lista;
}