Hola a todos,
resulta que quiero llamar a un SP de una BD en Sql Server 2000 pasándole un
parámetro DateTime en formato standar ANSI, esto es, YYYYMMDD HH:mm:ss.
Declaro el prámetro como DateTime
para = cmd.Parameters.Add("@Dia", System.Data.SqlDbType.SmallDateTime);
Y luego le añado el valor. Aqui tengo un DateTime 'normal', por lo q lo
tengo q formatear. Había pensado en hacerlo con
fecha.ToString("yyyyMMdd HH:mm:ss")
Pues por pantalla me lo pone bien, pero al asignarlo me tira diciendo que:
"Excepción no controlada del tipo 'System.FormatException' en mscorlib.dll
Información adicional: No se puede reconocer la cadena como valor DateTime
válido."
Haciendo pruebas, intentando tb
System.IFormatProvider format = new
System.Globalization.CultureInfo("en-US", false);
DateTime prueba=DateTime.ParseExact(dt.ToShortDateString(),"yyyyMMdd
HH:mm:ss",format);
Me dice lo mismo, por lo visto no se puede trabajar así en c#, pues en sql
si me deja meterlo en ese formato. Las pruebas las he hecho sin conexión con
BD para descartar q fuera cosa de eso, en un proyecto nuevo q me saq cosas
por consola para ver si daba con el fallo, y es al asignar una fecha así
formateada a una variable de tipo DateTime.
Una solución es poner el parámetro en la BD como varchar y q lo haga el sql,
pero me gustaría, si es posible, hacerlo desde c# pues ahora retocar todo
sería un problemón, aparte que no me parecería una solución "elegante", aunq
si funciona y es lo único q se puede hacer
Si alguien sabe por donde puedo tirar le estaré muy agradecido
Un saludo
Leer las respuestas