[ Foro de C# ]

Buscar por fecha en la base de datos

10-Feb-2015 17:02
Invitado (Naty)
1 Respuestas

hola, despues de tanto darle vueltas al asunto logre que me busque por fecha, el problema es que me devuelve dos veces el mismo registro y en el lugar  de mostrarme la clave foranea me tira  application.eee, si tengo mas de un registro con una fecha no me los muestra a todos, me muestra uno solo que lo duplica como 4 veces.,
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
DESDE C# USO LO SIGUENTE


   SqlCommand s = new SqlCommand("Execute sp_Buscar_VentaS_porFecha  @fecha ", Bdconexion.obtenerconeccion());

            s.Parameters.Add("@fecha", SqlDbType.Date, 50).Value = fecha;
            SqlDataReader _reader = s.ExecuteReader();

            while (_reader.Read())
            {

                a.Id = _reader.GetInt32(0);
                a.FechaVenta = _reader.GetDateTime(1);
                a.Clientes.Id = _reader.GetInt32(2);
                a.TipoDocumento = _reader.GetString(3);
                a.NumeroDocumento = _reader.GetInt32(4);
                listafiltrada.Add(a);
            }
            return listafiltrada;
         }
        private void btnBuscar_Fecha_Click(object sender, EventArgs e)
        {
            dgvVentas.DataSource = null;
            DateTime DIA= Convert.ToDateTime(TxbBuscarpor.Text);
         List<Ventas> LISTA= buscapor(DIA);
            dgvVentas.DataSource = LISTA;
        }


°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
EL CODIGO DEL SP ES


CREATE PROCEDURE [dbo].[sp_Buscar_VentaS_porFecha]

	@fecha date
AS
BEGIN
	
SELECT*FROM Ventas where fecha  =  @fecha
END




12-Feb-2015 10:23
Nacho Cabanes (+84)

Lo siento, no he usado Stored Procedures desde C#, no puedo ayudarte.

Pero si estás trabajando con visual Studio, pon un punto de interrupción justo donde se abre el "while", que te ayude a comprobar que los valores de las variables son los que tu esperas.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)