none
Buscar Fechas entre Datetimepicker en c# conexion a access RRS feed

  • Pregunta

  • Buenos dias:

    ASI tengo mi comsulta en c# conexion a mysql, el campo de la fecha en mysql la tengo asi fecha = 2015-11-01

    select * from tabla where Fecha between '" + Convert.ToDateTime(dtpinicio.Value).ToString("yyyy/MM/dd") + " 00:00' and '" + Convert.ToDateTime(dtpfinal.Value).ToString("yyy/MM/dd") + " 23:59'", cNX);

    Como seria en Access si el campo fecha lo tengo asi fecha= 17/11/2015

    como seria la consulta de la busqueda entre los dos datetimepicker???

    Agradeceria su ayuda ...gracias.

    miércoles, 25 de noviembre de 2015 15:59

Respuestas

  • ya lo resolvi gracias a sus ayudas de todo un poco defini mi problema asi:

     OleDbConnection connn = new OleDbConnection();
               //se indica la cadena de conexion
               connn.ConnectionString = @"cadena";
              
               connn.Open();

               string CADENA;

               OleDbCommand comm;
              
              
               OleDbDataAdapter adapp = new OleDbDataAdapter();

               CADENA = "select * from tabla WHERE Fecha >= @fechadesde AND Fecha <= @fechahasta";
               comm = new OleDbCommand(CADENA, connn);
               comm.Parameters.AddWithValue("@fechadesde", dtpinicio.Value);
               comm.Parameters.AddWithValue("@fechahasta", dtpfinal.Value); 

               adapp.SelectCommand = comm;

               DataSet ds = new DataSet();
               adapp.Fill(ds, "tabla");
               dgvdatos.DataSource = ds;
               dgvdatos.DataMember = "tabla";
              
               connn.Close();

    miércoles, 25 de noviembre de 2015 17:46

Todas las respuestas

  • Hola, si vas a conectarte a Access tenés que hacerlo a través del Driver OLE.

    Para eso tenés que crear una conexión OLE, luego un comando y pasarle los parámetros que quieras.

    var connection = new OleDbConnection("<aca va la connection string>");
    var cmd = new OleDbCommand("SELECT * FROM tabla WHERE Fecha BETWEEN @FechaInicio AND @FechaFin", connection);
    
    cmd.Parameters.AddWithValue(fechaInicio, "@FechaInicio");
    cmd.Parameters.AddWithValue(fechaFin, "@FechaFin");
    
    var reader = cmd.ExecuteReader();
    var result = new List<FilaDeTabla>();
    while(reader.Read()
    {
      resutl.Add(Translate(reader));
    }

    Tenés que definirte la función Translate para que haga lo que quieras. Para acceder a los campos podes hacer reader[0] donde 0 es el índice de la columna o reader["nombreCOlumna"].

    Más info en este artículo de MSDN.

    Salu2

    miércoles, 25 de noviembre de 2015 16:06
  • hola

    partamos de la base que deberias usar parametros

    DataTable dt = new DataTable();   
    using (MySqlConnection conn = new MySqlConnection("connection string"))   
    {   
    
        string query = "select * from <tabla> WHERE fecha >= @fechadesde AND fecha <= @fechahasta";   
    
        MySqlCommand cmd = new MySqlCommand(query, conn);   
        cmd.Parameters.AddWithValue("@fechadesde", dtpFechadesde.Value);   
        cmd.Parameters.AddWithValue("@fechahasta", dtpFechahasta.Value)); 
    
        MySqlDataAdapter da = new MySqlDataAdapter(cmd);     
        da.Fill(dt);   
    
    }

    como veras en los parametros envias un datetime

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 25 de noviembre de 2015 16:16
  • yo lo tengo en un datagridview asi:

                               

     OleDbConnection cNX = new OleDbConnection();
                //se indica la cadena de conexion
                cNX.ConnectionString = cadena conexion access";
                cNX.Open();

                OleDbDataAdapter da = new OleDbDataAdapter("consulta'", cNX);


                DataSet ds = new DataSet();
                da.Fill(ds, "tabla");
                dgvdatos.DataSource = ds;
                dgvdatos.DataMember = "tabla";
                cNX.Close();
            }

    como seria asi la consulta???

    miércoles, 25 de noviembre de 2015 16:38
  • ya lo resolvi gracias a sus ayudas de todo un poco defini mi problema asi:

     OleDbConnection connn = new OleDbConnection();
               //se indica la cadena de conexion
               connn.ConnectionString = @"cadena";
              
               connn.Open();

               string CADENA;

               OleDbCommand comm;
              
              
               OleDbDataAdapter adapp = new OleDbDataAdapter();

               CADENA = "select * from tabla WHERE Fecha >= @fechadesde AND Fecha <= @fechahasta";
               comm = new OleDbCommand(CADENA, connn);
               comm.Parameters.AddWithValue("@fechadesde", dtpinicio.Value);
               comm.Parameters.AddWithValue("@fechahasta", dtpfinal.Value); 

               adapp.SelectCommand = comm;

               DataSet ds = new DataSet();
               adapp.Fill(ds, "tabla");
               dgvdatos.DataSource = ds;
               dgvdatos.DataMember = "tabla";
              
               connn.Close();

    miércoles, 25 de noviembre de 2015 17:46
  • Hola me puedes decir que significa dgvdatos?????
    lunes, 16 de mayo de 2016 1:10
  • Hola Lourdesportalul,

    Eso es un DataGridView.

    Es común usar abreviaciones para nombrar los controles del formulario:

    DataGridView = dgvDatos
    TextBox = txtCodigo
    Button = btnProcesar

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    lunes, 16 de mayo de 2016 1:56