none
Ayuda con insert medio lioso RRS feed

  • Pregunta

  • hola foro, buen dia tengan ustedes, quiro hacer lo siguiente apartir de estos controles:

    DateTimePiker= Fecha Inicio

    DateTimePiker=Fecha Final

    TextBox=IDUSR

    TextBox=Descripcion

    antes de insertar quiero saber la cantidad de dias q esta entre fechaInicio y FechaFinal, esto en un numero entero, para luego insertar esa cantidad de veces para un IDUSR, no solo eso sino como se creara un numero de registros insertar la fecha inicio y la fecha q le sigue, y asi llegar hasta la fecha final, lo q espero:

    FechaInicio= 2010-11-01 , FechaFinal= 2010-11-03   esto deberia darme un 3 e insertarce 3 registros y la tabla quedarme asi:

    id_tabla   IDUSR        Fecha        Descripcion

       1            001     2010-11-01     Descripcion

       2            001     2010-11-02     Descripcion

       3            001     2010-11-03     Descripcion

    la verdad analice mucho mi problema y llegue a esta solucion, lo mas facil seria registrar un fecha inicio y una fechafinal pero lo necesito de esta forma, puesto q luego trabajare en la BD con sql.

    Trabajo con VB2008 y MySql, cualquier ayuda me sera util de antemano gracias mil.

     

    martes, 23 de noviembre de 2010 18:04

Respuestas

  • Hola,

     

    Para saber el numero de dias podrias usar algo asi

    Shared Function numerodias2(ByVal d1 As DateTime, ByVal d2 As DateTime)
                'obtengo la diferencia de días
                Dim iDays As Integer = DateDiff(DateInterval.Day, d1, d2)

                'Creo una variable de tipo fecha temporal
                Dim dTemp As DateTime = d1
                Dim iCounter As Integer
                'leo los días completos
                For i As Integer = 1 To iDays
                    'checo si es sabado o domingo, si no es así le sumo los días..
                    If dTemp.DayOfWeek <> DayOfWeek.Saturday And dTemp.DayOfWeek <> DayOfWeek.Sunday Then
                        iCounter += 1
                    End If
                    dTemp = dTemp.AddDays(1)
                Next
                Return iCounter + 1
            End Function

     

    y luego lo llamas asi

    txtndias.Text = numerodias2(Convert.ToDateTime(txtdate.Text), Convert.ToDateTime(txtdatefin.Text))

     

    En cuanto al guarda, se me ocurre que una vez que tengas la cantidad de dias, podrias hacer un while

    Dim e,d As Integer
    e = 0

    d=mitextbox.text

    While e > d
      insert
    End While

     

    Saludos,



    Jason Ulloa
    Mi Blog
    martes, 23 de noviembre de 2010 18:17
  • hola

    podrias hacer algo como esto

     

    Dim inicio As DateTime = DateTime.Now

    Dim fin As DateTime = DateTime.Now.AddDays(3)

    Dim time As TimeSpan = fin.Substract(inicio)

    For i As Integer = 1 To time.Days

      'Aqui insertas los tres registro

    Next

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 23 de noviembre de 2010 18:22

Todas las respuestas

  • Hola,

     

    Para saber el numero de dias podrias usar algo asi

    Shared Function numerodias2(ByVal d1 As DateTime, ByVal d2 As DateTime)
                'obtengo la diferencia de días
                Dim iDays As Integer = DateDiff(DateInterval.Day, d1, d2)

                'Creo una variable de tipo fecha temporal
                Dim dTemp As DateTime = d1
                Dim iCounter As Integer
                'leo los días completos
                For i As Integer = 1 To iDays
                    'checo si es sabado o domingo, si no es así le sumo los días..
                    If dTemp.DayOfWeek <> DayOfWeek.Saturday And dTemp.DayOfWeek <> DayOfWeek.Sunday Then
                        iCounter += 1
                    End If
                    dTemp = dTemp.AddDays(1)
                Next
                Return iCounter + 1
            End Function

     

    y luego lo llamas asi

    txtndias.Text = numerodias2(Convert.ToDateTime(txtdate.Text), Convert.ToDateTime(txtdatefin.Text))

     

    En cuanto al guarda, se me ocurre que una vez que tengas la cantidad de dias, podrias hacer un while

    Dim e,d As Integer
    e = 0

    d=mitextbox.text

    While e > d
      insert
    End While

     

    Saludos,



    Jason Ulloa
    Mi Blog
    martes, 23 de noviembre de 2010 18:17
  • hola

    podrias hacer algo como esto

     

    Dim inicio As DateTime = DateTime.Now

    Dim fin As DateTime = DateTime.Now.AddDays(3)

    Dim time As TimeSpan = fin.Substract(inicio)

    For i As Integer = 1 To time.Days

      'Aqui insertas los tres registro

    Next

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 23 de noviembre de 2010 18:22
  • lo pruebo gracias mil.
    martes, 23 de noviembre de 2010 18:25