none
Realizar consultas multiples filtros RRS feed

  • Pregunta

  • estoy haciendo un proyecto, que necesita hacer busqueda de en un gridview mediante varios filtros, que si se busca por un solo campo, ya sea, planta o nombre, o fecha desde inicio hasta fecha final, o si se busca por todos los campos, pero me marca un error, anexo el codigo y el error que me marca en el codigo en el lugar que me lo marca,

    PROCEDIMIENTO MYSQL

    CREATE DEFINER=`residuos`@`%` PROCEDURE `bitacorasearchBydateAndName`(
    _fecha1 date,
    _fecha2 date,
    _name varchar(200)
     )
    BEGIN
    SELECT bitacora.Fecha_de_ingreso, residuo.residuo
        FROM bitacora
        WHERE  (bitacora.Fecha_de_ingreso between _fecha1 and _fecha2 AND residuo.residuo=_name) or( residuo.residuo=_name) ;
    END

    ASP.NET C#

     protected void Button1_Click(object sender, EventArgs e)
            {
                using (MySqlConnection cn = new MySqlConnection(conectionString))
                {
                   // MySqlDataAdapter da = new MySqlDataAdapter("bitacorasearchBydateAndNameNEW", cn);
                    MySqlDataAdapter da = new MySqlDataAdapter("bitacorasearchBydateAndNameNEW", cn);
      
                        da.SelectCommand.CommandType = CommandType.StoredProcedure;
                    DateTime datepicke = new DateTime(); //Dato obtenido desde la accion
                    DateTime datepicke2 = new DateTime(); //Dato obtenido desde la accion

                    if (datepicke.Year==1)
                    {
                        da.SelectCommand.Parameters.Add("_Fecha1", MySqlDbType.Text).Value = Convert.ToDateTime(datepicke);
                    }

                    else
                    {
                        da.SelectCommand.Parameters.Add("_Fecha1", MySqlDbType.Text).Value = DBNull.Value;
                    }



                    if (datepicke2.Year==1)
                    {
                        da.SelectCommand.Parameters.Add("_Fecha2", MySqlDbType.Text).Value = Convert.ToDateTime(datepicke2);
                    }
                    else
                    {
                        da.SelectCommand.Parameters.Add("_Fecha2", MySqlDbType.Text).Value =  DBNull.Value;
                    }

                    if (string.IsNullOrWhiteSpace(name.Text))
                    {
                        da.SelectCommand.Parameters.Add("_name", MySqlDbType.Text).Value = Convert.ToString(name.SelectedItem);
                    }
                    else
                    {
                        da.SelectCommand.Parameters.Add("_name", MySqlDbType.Text).Value = DBNull.Value;
                    }
                    if (string.IsNullOrWhiteSpace(planta.Text))
                    {
                        da.SelectCommand.Parameters.Add("_planta", MySqlDbType.Text).Value = Convert.ToString(planta.SelectedItem); ;
                    }
                    else
                    {
                        da.SelectCommand.Parameters.Add("_planta", MySqlDbType.Text).Value = "Seleccione una Planta";
                    }



                    DataTable dt = new DataTable();
                       da.Fill(dt);   /* MARCA ERROR (MySql.Data.MySqlClient.MySqlException: 'Incorrect datetime value: '01/01/0001 12:00:00 a. m.' for column '_fecha1' at row 41')  */
                       this.GridView1.DataSource = dt;
                       GridView1.DataBind();
           
                    


                }

            }

    TAMBIEN INTENTE, PERO AL MOMENTO DE COMPILAR, ME MANDABA MENSAJE SI QUERIA EJECUTARLO POR QUE PODRIA GENERR ERROR AUNQUE EN EL CODIGO NO ME MARCABA QUE HABIA ERRORES, DE CODIGO O CULQUIER COSA

     if (DateTime.TryParse(datepicker.Text, out DateTime datepicke))
                    {
                        da.SelectCommand.Parameters.Add("_Fecha1", MySqlDbType.Text).Value = Convert.ToDateTime(datepicker.Text); }

                    else
                    {
                        da.SelectCommand.Parameters.Add("_Fecha1", MySqlDbType.Text).Value = DBNull.Value; }

                    if (DateTime.TryParse(datepicker2.Text, out DateTime datepicke2))
                    {
                        da.SelectCommand.Parameters.Add("_Fecha2", MySqlDbType.Text).Value = Convert.ToDateTime(datepicker2.Text); }
                    else
                    {
                        da.SelectCommand.Parameters.Add("_Fecha2", MySqlDbType.Text).Value = DBNull.Value;
                }

    miércoles, 11 de septiembre de 2019 13:21

Todas las respuestas

  • Hola   danielglez

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma,  te  sugiero realizar lo siguiente:

     

    1.  Necesitamos que nos compartas por favor el mensaje de error al momento de compilar.

     

     

    Gracias por usar los foros de MSDN.

     

    Pablo Rubio

     

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 18 de septiembre de 2019 14:49
    Moderador