[ Foro de C# ]
Hola, estoy creando un sistema y quiero que cada vez que un usuario entre a este, se registre en una tabla la fecha exacta. Quiero crear un metodo que me inserte la fecha, aqui esta el problema porque de todas las meneras que lo he intentado me marca un error.
Informacion Importante:
En la clase lo deje como tipo 'string fechaingreso', en la bdd lo tengo como datetime
public void insertarFecha()
{
string hoy = DateTime.Now.ToString();
SqlCommand comando = new SqlCommand(string.Format("insert into ingreso (fechaingreso) values ('{0}')", hoy),this.conn);
this.conn.Open();
comando.ExecuteNonQuery();
this.conn.Close();
}
PD: Eso fue lo ultimo que hice, me he dado varias vueltas probando algunas cosas, entiendo mas menos de que se trata pero no logro llegar a una posible solucion, agradeceria su ayuda.
ERROR: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.
El mensaje de error es bastante claro: ¿Qué tamaño tiene ese campo "fechaingreso"? Muestra el valor de "DateTime.Now.ToString()" para ver cuántas letras necesitas y comprueba si has reservado suficientes.
El campo "fechaingreso" en la BD es un datetime, y en la clase lo he trabajado como string y date time sin lograr resultado.
Entiendo cual es el error, pero no se como solucionarlo.
Gracias
En la referencia oficial de SQLite puedes ver que no existe un tipo DATETIME nativo, sino que se almacenan como cadena de texto con un formato muy concreto:
https://www.sqlite.org/datatype3.html
(mira el apartado 1.2). Insisto: muestra en pantalla el valor de ese "DateTime.Now.ToString()" para ver si tu formato de fecha y hora local coincide con el que acepta SQLite. Por ejemplo, es muy habitual que la fecha y hora que se te muestre en pantalla no comience con el año.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)