none
Problemas al Ingresar Fechas en base de datos RRS feed

  • Pregunta

  •  

    Hola a todos, espero me puedan ayudar con esto,

     

    me esta sucediendo, que al ingresar ingresar fechas en una base de datos, estas se ingresan al reves, osea, si marco en el calendario el 04/02/2008, se ingresa en la base de datos 02/04/2008, esto no me pasaba antes, resulta que al entrar un virus en mi pc, tube que reinstalar todo nuevamente, inicialmente tenia instalado visual studio .net 2005 en español, y al reinstalar pc solo tenia disponible en ese momento una version en ingles, desde ese momento comenzaron los problemas con las fechas, ahora desinstale la version en ingles y volvi a instalar VS.net 2005 en español, pero el problema persiste,

     

    ademas en una parte del programa al leer fechas me da el sigiente error:

     

    Arithmetic overflow error converting expression to data type datetime.

     

    que debe ser producido por el mismo problema de las fechas, debe ser algo relacionado con formatos, espero tengan una idea y me ayuden,

     

    Ojalas me puedan dar una mano,

     

    Atte,

     

    Antonio

     

     

    sábado, 9 de febrero de 2008 17:05

Respuestas

  •  SABATTICO Escribió:

     

    Revise lo de la configuracion regional, y esta bien, y el campo de la base de datos es DATETIME,

     

    para pasar la fecha a la base de datos hago lo siguiente:

     

    tomo la fecha desde el control calendar de esta forma:

     

    fecha.text =  GridView1.SelectedDataKey.Value

     

    y el valor que queda en fecha.text, lo paso a la base de datos, antes no tenia problema al hacerlo asi,

     

    podrias explicarme lo del convert o algo ams para solucionar esto,

     

    de antemano muchas gracias,

     

    Atte,

     

    Antonio

     

     



    Mira lo que pusiste tiene que ver con un GridView... si estas tomando la fecha de ahi, partamos con que, la columna que esta como Date, tiene que ser DataKey.

    Aun no me queda en claro bien lo que estas haciendo, para la conversion yo hago
    DateTime _date = Convert.ToDateTime(txtDate.Text);

    Vos estas actualizando en el DataGrid verdad? en el RowCommand?

    Saludos.
    domingo, 10 de febrero de 2008 13:33

Todas las respuestas

  • Revisa las opciones de configuración regional del panel de control de tu Windows. Seguramente tienes que ajustar el formato de las fechas.

     

    Salud y suerte!

    sábado, 9 de febrero de 2008 20:38
  •  SABATTICO Escribió:

     

    Hola a todos, espero me puedan ayudar con esto,

     

    me esta sucediendo, que al ingresar ingresar fechas en una base de datos, estas se ingresan al reves, osea, si marco en el calendario el 04/02/2008, se ingresa en la base de datos 02/04/2008, esto no me pasaba antes, resulta que al entrar un virus en mi pc, tube que reinstalar todo nuevamente, inicialmente tenia instalado visual studio .net 2005 en español, y al reinstalar pc solo tenia disponible en ese momento una version en ingles, desde ese momento comenzaron los problemas con las fechas, ahora desinstale la version en ingles y volvi a instalar VS.net 2005 en español, pero el problema persiste,

     

    ademas en una parte del programa al leer fechas me da el sigiente error:

     

    Arithmetic overflow error converting expression to data type datetime.

     

    que debe ser producido por el mismo problema de las fechas, debe ser algo relacionado con formatos, espero tengan una idea y me ayuden,

     

    Ojalas me puedan dar una mano,

     

    Atte,

     

    Antonio

     

     



    Lo de la visualizacion, es por regionalizacion. Como lo mencionaron.
    Contanos un poco, que control estas usando para seleccionar la fecha? Como la estas tratando? Algun Convert ? o algo por el estilo? Que tipo de campo es el de la tabla?
    En si como envias la fecha a la base de datos, y como la manipulas.

    Ya que no tendria que haber ningun tipo de problema, si todo es DateTime.

    Saludos.
    domingo, 10 de febrero de 2008 1:55
  •  

    Revise lo de la configuracion regional, y esta bien, y el campo de la base de datos es DATETIME,

     

    para pasar la fecha a la base de datos hago lo siguiente:

     

    tomo la fecha desde el control calendar de esta forma:

     

    fecha.text =  GridView1.SelectedDataKey.Value

     

    y el valor que queda en fecha.text, lo paso a la base de datos, antes no tenia problema al hacerlo asi,

     

    podrias explicarme lo del convert o algo ams para solucionar esto,

     

    de antemano muchas gracias,

     

    Atte,

     

    Antonio

     

     

    domingo, 10 de febrero de 2008 6:03
  •  SABATTICO Escribió:

     

    Revise lo de la configuracion regional, y esta bien, y el campo de la base de datos es DATETIME,

     

    para pasar la fecha a la base de datos hago lo siguiente:

     

    tomo la fecha desde el control calendar de esta forma:

     

    fecha.text =  GridView1.SelectedDataKey.Value

     

    y el valor que queda en fecha.text, lo paso a la base de datos, antes no tenia problema al hacerlo asi,

     

    podrias explicarme lo del convert o algo ams para solucionar esto,

     

    de antemano muchas gracias,

     

    Atte,

     

    Antonio

     

     



    Mira lo que pusiste tiene que ver con un GridView... si estas tomando la fecha de ahi, partamos con que, la columna que esta como Date, tiene que ser DataKey.

    Aun no me queda en claro bien lo que estas haciendo, para la conversion yo hago
    DateTime _date = Convert.ToDateTime(txtDate.Text);

    Vos estas actualizando en el DataGrid verdad? en el RowCommand?

    Saludos.
    domingo, 10 de febrero de 2008 13:33
  • Estimado, muchas gracias, hice la conversion en todas las areas donde ocupada fechas y funciono bien,

     

    espero no sea mucha molestia, pero quiero consultarte algo mas,

     

    leo una base de datos y paso laminformacion a texbox, lo que yo quiero es que pasen solo los caracteres y no los espacios en blanco que solo estorban a la hora de modificar los datos,

     

    espero me puedas ayudar y muchas gracias nuevamente,

     

    Atte,

     

    Antonio

     

     

     

    domingo, 10 de febrero de 2008 17:52
  •  SABATTICO Escribió:

    Estimado, muchas gracias, hice la conversion en todas las areas donde ocupada fechas y funciono bien,

     

    espero no sea mucha molestia, pero quiero consultarte algo mas,

     

    leo una base de datos y paso laminformacion a texbox, lo que yo quiero es que pasen solo los caracteres y no los espacios en blanco que solo estorban a la hora de modificar los datos,

     

    espero me puedas ayudar y muchas gracias nuevamente,

     

    Atte,

     

    Antonio

     

     

     


    Si podes darme un ejemplo de lo que esta sucediendo mejor.

    Yo aca te dejo un ejemplo de como convertir algo de "Esta es una cadena" a "Estaesunacadena", yo suelo usar Expresiones regulares, tenes varias formas de hacer lo mismo...

     

    string _MiCadena = "Esta es una cadena";

    Regex r = new Regex(@"\s");

    string _miString = r.Replace(_MiCadena, "");

    // _miString quedaria igual a "Estaesunacadena"

     

    Saludos.

    domingo, 10 de febrero de 2008 18:36
  •  

    Hola tambien al hacer el INSERT en la base de datos lo q puedes hacer es formatear usando las sentecias CAST y CONVERT de SQL Server  Ejemplo

     

     

    INSERT INTO EJEMPLO (CAMPO1)

    VALUES (Cast(Convert(Varchar(10),'"& FormatDateTime(x,DateFormat.ShortDate )  &"',103) as datetime)

     

    el resultado sera :

     

    28/02/2008 08:06:56 p.m

     

    espero te sirva

     

    viernes, 29 de febrero de 2008 2:06