none
problemas al guardar la fecha y hora en sql server RRS feed

Respuestas

  •  como guardar la fecha y la hora en sql server desde c#

    Tendrías que afinar bastante más la pregunta. C# no tiene instrucciones de entrada/salida, y por lo tanto no es posible grabar nada en una base de datos usando exclusivamente C#. Siempre es necesario llamar desde C# a alguna librería que por dentro tenga la funcionalidad necesaria para grabar en la base de datos.

    Existen distintas librerías de ese tipo, siendo la más corriente ADO.NET, aunque hay otras abstracciones de más alto nivel que se pueden ubicar por encima de ADO.NET, como por ejemplo Entity Framework (EF) u otros ORM.

    Dado que la librería que manejes va a condicionar todos los accessos a base de datos que haga tu programa, deberías matizar en la pregunta cuál es la librería de acceso a datos que estás usando.

    En particular, guardar la fecha y hora desde Entity Framework simlemente requiere que añadas en tu definición de entidades un campo de tipo DateTime. Después le asignas el valor deseado a la instancia de la entidad que vas a grabar, y llamas a SvaeChanges sobre el DbContext.

    Pero en cambio si usas ADO.NET en lugar de EF, entonces tienes que escribir enterita la sentencia UPDATE (o INSERT) en SQL, y añadir en ella la fecha, bien sea concatenándola en la sentencia (mm/mm/aaaa o aaaammdd), o mejor todavía parametrizándola y luego metiendo un DateTime en el parámetro.

    Pero también puede ser que estés usando DataSets y DataAdapters en tu programa. En ese caso, se añade un campo de tipo DateTime en el DataSet que concuerde con el DateTime de la tabla de tu base de datos, y luego se salva con el método Update del DataAdapter.

    Como ves, todo cambia muchísimo dependiendo de cómo estés accediendo a los datos. Tendrías que ampliar tu pregunta señalando cómo está hecho el código que usas para grabar en la base de datos, y entonces preguntar "cómo le añado a ESTO una fecha y hora".

    viernes, 17 de marzo de 2017 7:51
    Moderador
  • hola

    entiendo que por guardar te refieres a realizar un INSERT, no ?

    la estructura podria ser algo como esto

    using (SqlConnection conn = new SqlConnection("<connection string>"))  
    {  
        conn.Open();  
     
        string query = "INSERT INTO NombreTabla (campo1, campo2) VALUES (@param1, @param2)";  
        SqlCommand cmd = new SqlCommand(query, conn);  
        cmd.Parameters.AddWithValue("@param1", Convert.ToString(TextBox1.Text));  
        cmd.Parameters.AddWithValue("@param2", Convert.ToDateTime(Textbox2.Text));  
     
        cmd.ExecuteNonQuery();  
     
    }

    la idea es que por parametro asignes el datetime para que se inserte en ese campo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 17 de marzo de 2017 10:22

Todas las respuestas

  • Hola Ing Rodolfo armenta,

    ¿Qué problema estás presentando, te muestra algún error (en caso sea correcto deberías mostrarlo) ?

    Deberías mostrar el código que estás implementando y mencionar la línea en la que se produce el error. Además de mencionar el tipo de tus campo en SqlServer (date, datetime, time) ?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    viernes, 17 de marzo de 2017 1:31
  •  como guardar la fecha y la hora en sql server desde c#

    Tendrías que afinar bastante más la pregunta. C# no tiene instrucciones de entrada/salida, y por lo tanto no es posible grabar nada en una base de datos usando exclusivamente C#. Siempre es necesario llamar desde C# a alguna librería que por dentro tenga la funcionalidad necesaria para grabar en la base de datos.

    Existen distintas librerías de ese tipo, siendo la más corriente ADO.NET, aunque hay otras abstracciones de más alto nivel que se pueden ubicar por encima de ADO.NET, como por ejemplo Entity Framework (EF) u otros ORM.

    Dado que la librería que manejes va a condicionar todos los accessos a base de datos que haga tu programa, deberías matizar en la pregunta cuál es la librería de acceso a datos que estás usando.

    En particular, guardar la fecha y hora desde Entity Framework simlemente requiere que añadas en tu definición de entidades un campo de tipo DateTime. Después le asignas el valor deseado a la instancia de la entidad que vas a grabar, y llamas a SvaeChanges sobre el DbContext.

    Pero en cambio si usas ADO.NET en lugar de EF, entonces tienes que escribir enterita la sentencia UPDATE (o INSERT) en SQL, y añadir en ella la fecha, bien sea concatenándola en la sentencia (mm/mm/aaaa o aaaammdd), o mejor todavía parametrizándola y luego metiendo un DateTime en el parámetro.

    Pero también puede ser que estés usando DataSets y DataAdapters en tu programa. En ese caso, se añade un campo de tipo DateTime en el DataSet que concuerde con el DateTime de la tabla de tu base de datos, y luego se salva con el método Update del DataAdapter.

    Como ves, todo cambia muchísimo dependiendo de cómo estés accediendo a los datos. Tendrías que ampliar tu pregunta señalando cómo está hecho el código que usas para grabar en la base de datos, y entonces preguntar "cómo le añado a ESTO una fecha y hora".

    viernes, 17 de marzo de 2017 7:51
    Moderador
  • hola

    entiendo que por guardar te refieres a realizar un INSERT, no ?

    la estructura podria ser algo como esto

    using (SqlConnection conn = new SqlConnection("<connection string>"))  
    {  
        conn.Open();  
     
        string query = "INSERT INTO NombreTabla (campo1, campo2) VALUES (@param1, @param2)";  
        SqlCommand cmd = new SqlCommand(query, conn);  
        cmd.Parameters.AddWithValue("@param1", Convert.ToString(TextBox1.Text));  
        cmd.Parameters.AddWithValue("@param2", Convert.ToDateTime(Textbox2.Text));  
     
        cmd.ExecuteNonQuery();  
     
    }

    la idea es que por parametro asignes el datetime para que se inserte en ese campo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 17 de marzo de 2017 10:22