none
Problema al Grabar fechas RRS feed

  • Pregunta

  • Hola a todos, estoy intentando grabar registros que incluyen fechas en una tabla de SQL Server 2012 con el problema de que al utilizar Linq y ADO 4 no me sirve simplemente coger DateTime.Now y convertirlo en un formato con string.Format dado que para guardarlo en un campo del objeto para la inserción con DBcontext.Add necesito crear de nuevo el objeto DateTime, he probado varias cosas que os expongo pero no consigo que funcione

    SOLUCION 1  -> falla : Al grabar el Cliente da una expcepcion

    string dd = string.Format("{0:MM/dd/yyy}", DateTime.Now);
    CultureInfo culture = CultureInfo.InvariantCulture;

    Cliente1.Facceso = DateTime.Parse(dd, culture);

    SOLUCION 2 -> falla (Excepción)

    DateTime fecha = DateTime.ParseExact(DateTime.Now.ToString(), "yyyy/MM/dd", CultureInfo.CurrentCulture);

    SOLUCION 3  -> falla (Excepción)

    string FECHAHOY = string.Format("{0:yyyy/MM/dd hh:mm:ss}", DateTime.Now);

    facceso = Convert.ToDateTime(FECHAHOY);

    ya no se me ocurren mas formas, ni encuentro más por Internet, a ver si conocéis alguna que funcione bien.

    un saludo

    CultureInfo.CurrentCulture);

    sábado, 29 de agosto de 2015 16:36

Respuestas

  • No lo que me indicas no funciona, porque la base de datos me exige el formato de Entrada MM/dd/yyyy por lo que la final después de tocar la intercalación de la Base de datos he conseguido que funcione con este formato que dejo por si a alguien le sirve. string FECHAHOY = string.Format("{0:MM/dd/yyyy hh:mm:ss}", DateTime.Now); Cliente.FechaFactura = DateTime.Parse(FECHAHOY, CultureInfo.InvariantCulture); un saludo y gracias
    • Marcado como respuesta fjjcent domingo, 30 de agosto de 2015 19:00
    domingo, 30 de agosto de 2015 18:59

Todas las respuestas

  • se que en LINQ no solo existen métodos de extensión como .Where(a=> ....) sino que también se puede utilizar en Linq un formato parecido al SQL de siempre y que podría ser la forma de grabar fechas, dado que no termino de encontrar nada que funcione, y todas mis sentencias que incluyen fechas como

       Cliente C = new Cliente();

       C.Fecha_Nacimiento = DateTime.Parse("1979/12/23);

       Contexto.DBSetClientes.Add(C);

       Contexto,SaveChanges();

    esto falla porque en la conversión del Parse utiliza el sistema operativo y lo convierte en dd/mm/yyyy, a lo mejor la solución es utilizar la versión sin métodos de extensión, pero es que nunca he trabajado con esa forma, me podríais echar una mano de como seria en esa forma de Linq la sentencia algo como FROM X IN TABLA ....

    un saludo

     

    sábado, 29 de agosto de 2015 22:33
  • Buenas,

    Puedes utilizar el siguiente código:

    Cliente C = new Cliente();

    C.Fecha_Nacimiento = DateTime.Now.Date;

    Contexto.DBSetClientes.Add(C);

     Contexto.SaveChanges();

    También puedes utilizar la sentencia Convert.ToDateTime y utilizar un date picker para seleccionar la fecha en dicho caso tu código seria el siguiente:

    Cliente C = new Cliente();

    C.Fecha_Nacimiento = Convert.ToDateTime(dateTimePicker1.Value.ToShortDateString());

    Contexto.DBSetClientes.Add(C);

     Contexto.SaveChanges();


    Eduardo Ramirez MSP For Honduras

    domingo, 30 de agosto de 2015 1:09
  • No lo que me indicas no funciona, porque la base de datos me exige el formato de Entrada MM/dd/yyyy por lo que la final después de tocar la intercalación de la Base de datos he conseguido que funcione con este formato que dejo por si a alguien le sirve. string FECHAHOY = string.Format("{0:MM/dd/yyyy hh:mm:ss}", DateTime.Now); Cliente.FechaFactura = DateTime.Parse(FECHAHOY, CultureInfo.InvariantCulture); un saludo y gracias
    • Marcado como respuesta fjjcent domingo, 30 de agosto de 2015 19:00
    domingo, 30 de agosto de 2015 18:59