Fechas en C# y en firebird ( u otras BDD )

23/02/2007 - 21:43 por Xuri | Informe spam
Pues mirad, tengo mi proyecto que antes guardaba los datos en acces, y las
fechas se guardaban correctamente ( utilizo DD/MM/AAAA ) pero ahora que
guardo en firebird me da error porque utiliza ( MM/DD/AAAA ) y no se si
necesito configurar un culture o como, ... que puedo hacer? Cada vez que lea
el valor, hacer un PARSE y al guardar lo mismo? Se os ocurre una solucion??

Gracias

Preguntas similare

Leer las respuestas

#11 Hernan
02/03/2007 - 12:50 | Informe spam
> > Lo que te decimos (si interpreto bien al resto) es que pongas
> > la sentencia SQL como "INSERT INTO T (FECHA) VALUES (@FEC)"
> > y luego pasas la variable DateTime directamente como parametro.

> Exactamente.

no lo he probado, pero si le meto una fecha de este metodo al modo DD/MM/AAAA
se lo "comera"?, o por ejemplo

Si pongo una fecha 10/5/2007, me guarda 5 de octubre del 2007 en lugar de la
fecha real que es dia 10 de mayo de 2007?? Si es asi, al introducir dia
25/3/2007 daria error o directamente no guardaria la sentencia SQL



Si en tu programa C# la fecha es de tipo DateTime no tendrás
problemas de formato. Internamente el 10 de mayo siempre será
10 de mayo sin importar qué idioma o qué configuración regional
el usuario haya elegido. Otra cuestión es cuando lo muestras o lo
imprimes (es decir, cuando lo conviertes a string para mostrarlo)

Cuando le pasas directamente el DateTime al comando SQL como
parámetro, el ADO.NET debería encargarse de resolver cualquier
conversión necesaria.

*SI* el ADO.NET para Firebird está bien programado tu le pasas
el DateTime y debería funcionar para cualquier configuración regional,
idioma del .NET, idioma del Windows tanto del ordenador cliente
como del servidor.

-H.
Respuesta Responder a este mensaje
#12 Octavio Hernandez
02/03/2007 - 23:06 | Informe spam
Xuri,

Te pongo un ejemplo en código para complementar lo q dice Hernán. Supongamos
que tienes la fecha en una variable dt de tipo DateTime.

FbCommand cmd = new FbCommand("INSERT INTO T (FECHA) VALUES (@FEC)"); //
la sentencia SQL tiene un parámetro
cmd.Parameters.Add("@FEC", FbDbType.DateTime); // indicamos que hay un
parámetro, su nombre y tipo
cmd.Parameters["@FEC"].Value = dt; // asignamos el valor. Fíjate que
aquí no se convierte la fecha a cadena en ningún momento.
cmd.ExcuteNonQuery(); // ejecutamos la sentencia

Slds - Octavio



"Xuri" escribió en el mensaje
news:
no lo he probado, pero si le meto una fecha de este metodo al modo
DD/MM/AAAA
se lo "comera"?, o por ejemplo

Si pongo una fecha 10/5/2007, me guarda 5 de octubre del 2007 en lugar de
la
fecha real que es dia 10 de mayo de 2007?? Si es asi, al introducir dia
25/3/2007 daria error o directamente no guardaria la sentencia SQL

"Carlos Guzmán Álvarez" wrote:

Hola:

> Lo que te decimos (si interpreto bien al resto) es que pongas
> la sentencia SQL como "INSERT INTO T (FECHA) VALUES (@FEC)"
> y luego pasas la variable DateTime directamente como parametro.

Exactamente.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida