C# SQL Server Data Access: Fetch Client Invoices and Date Range Records

Other foreign languages2.3 KB

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;
}

Download

PDF Word HTML