none
Ayuda con fechas, restar un mes RRS feed

  • Debate general

  • Buenas noches gente, qué tal? Aqui estoy enredado con fechas
    Tengo una tabla que tiene una columna con fechas
    Quiero que me muestre en el datagridview todas las columnas del mes pasado y también que tengan null en la columna kwh
    Tomo la primer fila(siempre será la fecha que yo quiero) de la columna mes y la formateo en MM-yyyy y pongo el resultado en el label2
    Tomo la fecha de hoy, le resto un mes y la formateo a MM-yyyy y la pongo en el label4
    Pero cuando hago otra consulta a la tabla con el valor del label4, el resultado es nada. Mal. Pero claro, en la tabla está todo en (dd-MM-yyyy hh:mm:ss)
    El drama es porque como se ve en la caprura de pantalla, en el primer datagridview me da dos filas por cada usuario, la fila de ese mes de este año y la fila de ese mes del año siguiente. Yo quiero solo lo del mes pasado, no lo de dentro de 13 meses
    Espero haberme explicado, espero su mano, gracias

    la captura de pantalla:

    http://uploads.im/EJ1P0.png

    mi código:

    Imports MySql.Data.MySqlClient
    Imports MySql.Data
    
    Public Class facturar
    
        Dim con As MySqlConnection = New MySqlConnection("Server=localhost; user Id=user1; Password=multiredes; Database=prueba1")
    
        Private Sub facturar_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            'Se crea un MySqlDataAdapter para obtener los datos de la base
            Dim MyAdapter As New MySqlDataAdapter("SELECT * FROM tablita WHERE MONTH(mes) = MOD(MONTH(CURDATE()), 12) - 1 and kwh is null;", con)
    
            'Se crea un DataTable que almacenará los datos desde donde se cargaran los datos al DataGridView
            Dim MyDataTable As New DataTable
    
            'Con la información del adaptador se rellena el DataTable
            MyAdapter.Fill(MyDataTable)
    
            'Se asigna el DataTable como origen de datos del DataGridView
            DataGridView1.DataSource = MyDataTable
    
    
    
            Dim _tiempo As DateTime = DataGridView1.Rows(0).Cells(6).Value
            Dim _tiempo2 As String
            _tiempo2 = Format(_tiempo, "MM-yyyy")
            Label1.Text = _tiempo
            Label2.Text = _tiempo2
    
            Dim _tiempohoy As Object = DateTime.Now()
            '_tiempohoy = Format(Now, "MM-yyyy")
            'DateTime _tiempohoy = _tiempohoy.AddDays(-1);
            Label3.Text = _tiempohoy
    
            'resto un mes a la fecha actual(_tiempohoy), lo pongo en _tiempo3, luego formateo esa variable y la muestro en el label4
            Dim _tiempo3
            _tiempo3 = DateAdd(DateInterval.Month, -1, _tiempohoy).ToShortDateString()
            _tiempo3 = Format(_tiempo, "MM-yyyy")
            Label4.Text = _tiempo3
    
    
            'Se crea un MySqlDataAdapter para obtener los datos de la base
            Dim MyAdapter2 As New MySqlDataAdapter("SELECT * FROM tablita WHERE mes = ('" + Label4.Text + "') and kwh is null;", con)
    
            'Se crea un DataTable que almacenará los datos desde donde se cargaran los datos al DataGridView
            Dim MyDataTable2 As New DataTable
    
            'Con la información del adaptador se rellena el DataTable
            MyAdapter2.Fill(MyDataTable2)
            '('" + Label_nombre_grande.Text + "')
            DataGridView2.DataSource = MyDataTable2
    
           
        End Sub
    
    
    End Class

    lunes, 31 de marzo de 2014 21:24