Sumar un campo por rango de fechas en C#
Publicado por Lourdes (1 intervención) el 20/12/2018 14:37:35
Hola!
Tengo un programa WindowsForm en Visual studio el cual se conecta a una base de datos SQL Server.
En una de las tablas "Pedido" se guarda toda la información de un pedido con la Fecha (DateTime) y Ganancia (Money), al igual que su clase en VisalStudio
Necesito que calcula el total de las ganancia según dos datepicker de un form (fecha desde y fecha hasta) que hagan referencia a la fecha del pedido. Para esto realizo lo siguiente
Procedimiento almacenado en base de datos SQL
Luego realizo la conexión del programa a sp en la clase SQL que utiliza SqlClient
Luego hago el llamado del StoredProcedure desde el Form para que muestre en pantalla en valor del DataTable:
El valor que me devuelve es nulo. Haciendo el debug las fechas las asigna correctamente pero el dt lo retorna null.
Realizo la query en la base de datos reemplazando las variables por las fechas indicadas
y me devuelve un valor de 2940
También probé asignando las variables como varhcar en el sp y como string en el programa para que pase las fechas con formato texto y tambien devuelve nulo.
¿Qué puedo hacer? Necesito ayuda
Tengo un programa WindowsForm en Visual studio el cual se conecta a una base de datos SQL Server.
En una de las tablas "Pedido" se guarda toda la información de un pedido con la Fecha (DateTime) y Ganancia (Money), al igual que su clase en VisalStudio
Necesito que calcula el total de las ganancia según dos datepicker de un form (fecha desde y fecha hasta) que hagan referencia a la fecha del pedido. Para esto realizo lo siguiente
Procedimiento almacenado en base de datos SQL
1
2
3
4
5
6
7
8
9
10
11
ALTER PRODECURE [Ganancias_Reporte]
@Fecha1 Datetime,
@Fecha2 Datetime
as
select sum(Ganancia) as Ganancias from Pedidos
where Fecha between @Fecha1 and @Fecha2
Luego realizo la conexión del programa a sp en la clase SQL que utiliza SqlClient
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public DataTable Reporte_Ganancias(DateTime Fecha1, DateTime Fecha2)
{
string sql = "Ganancias_Reportes";
SqlConnection cn = new SqlConnection(connect);
SqlCommand cmd = new SqlCommand(sql, cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Fecha1", Fecha1);
cmd.Parameters.AddWithValue("@Fecha2", Fecha2);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
cn.Open();
da.Fill(dt);
cn.Close();
return dt;
}
Luego hago el llamado del StoredProcedure desde el Form para que muestre en pantalla en valor del DataTable:
1
2
3
4
5
private void btnCalcular_Click(object sender, EventArgs e)
{
DataTable dt = sql.Reporte_Ganancias(DateTime.Parse(dtpFechaDesde.Text), DateTime.Parse(dtpFechaHasta.Text));
MessageBox.Show("Ganancias = " + dt.ToString());
}
El valor que me devuelve es nulo. Haciendo el debug las fechas las asigna correctamente pero el dt lo retorna null.
Realizo la query en la base de datos reemplazando las variables por las fechas indicadas
1
2
3
select sum(Ganancia) from Pedidos
where Fecha between '13/12/2018 0:00:00' and '13/12/2018 0:00:00'
y me devuelve un valor de 2940
También probé asignando las variables como varhcar en el sp y como string en el programa para que pase las fechas con formato texto y tambien devuelve nulo.
¿Qué puedo hacer? Necesito ayuda
Valora esta pregunta
0