Visual Basic.NET - Problemas para guardar campo fecha nulo

 
Vista:

Problemas para guardar campo fecha nulo

Publicado por junahu (4 intervenciones) el 05/04/2007 19:07:35
Hola amigos, estoy haciendo un ejemplo con visual basic net 2005 y como base de datos SqlServer y tengo un problema al intentar guardar un nuevo registro en la BD.
Estoy utilizando para guardar la sentencia:
ElDataAdapter.Update(ElDataSet,”Tabla”)

De esta forma me funciona todo, hasta que dejo un campo (TextBox que pide la fecha) vacío. Y eso que en la BD está puesto que permite valores nulos.

He intentado decirle que si es nulo le ponga System.DBNull.Value, pero me dice que DBNull no se puede convertir en String.
He intentado también utilizar la expresión:
Dim sqlDateNulo As SqlTypes.SqlDateTime
sqlDateNulo = SqlTypes.SqlDateTime.Null
y despues le digo que si el txtFecha es nulo, le meto sqlDataNulo. Pero esto lo queme hace es introducir el valor “1/1/1900”.

Creo que utilizando Insert no me daría problemas pero quisiese saber si hay alguna forma de hacerlo con Update.

Gracias por todo y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas para guardar campo fecha nulo

Publicado por OliBeer (391 intervenciones) el 09/04/2007 22:29:10
MIra, yo he trabajo mucho con fechas y a lo que yo sé, nunca vas a poder dejarlo nulo, por defecto introduce 1/1/1900, y ese es el valor nulo, cuando lo devuelvas, veras que regresará nulo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas para guardar campo fecha nulo

Publicado por roberto (29 intervenciones) el 10/04/2007 22:02:52
hay una forma de hacerlo pero desde un stored procedure en sql server , desde net solo le pasa parametros, te adjunto el ejemplo y esto grabara nulo en tu campo fecha y no el default , mira bien :

Evalua la longitud del parametro ytipo fecha que le pasaras, cogelo por la longitud.

Insert into personal(fecnac,feccese)
Case when len(@fecnac)>0 then cast(@fecnac as datetime) else NULL end,Case when len(@feccese)>0 then cast(@feccese as datetime) else NULL end


espero te sirva.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas para guardar campo fecha nulo

Publicado por roberto (29 intervenciones) el 10/04/2007 22:03:50
hay una forma de hacerlo pero desde un stored procedure en sql server , desde net solo le pasa parametros, te adjunto el ejemplo y esto grabara nulo en tu campo fecha y no el default , mira bien :

Evalua la longitud del parametro ytipo fecha que le pasaras, cogelo por la longitud.

Insert into personal(fecnac,feccese)
Case when len(@fecnac)>0 then cast(@fecnac as datetime) else NULL end,Case when len(@feccese)>0 then cast(@feccese as datetime) else NULL end


espero te sirva.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas para guardar campo fecha nulo

Publicado por roberto (29 intervenciones) el 10/04/2007 22:03:52
hay una forma de hacerlo pero desde un stored procedure en sql server , desde net solo le pasa parametros, te adjunto el ejemplo y esto grabara nulo en tu campo fecha y no el default , mira bien :

Evalua la longitud del parametro ytipo fecha que le pasaras, cogelo por la longitud.

Insert into personal(fecnac,feccese)
Case when len(@fecnac)>0 then cast(@fecnac as datetime) else NULL end,Case when len(@feccese)>0 then cast(@feccese as datetime) else NULL end


espero te sirva.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas para guardar campo fecha nulo

Publicado por junahu (4 intervenciones) el 18/04/2007 00:15:11
Gracias roberto, pero he encontrado otra forma mas facil.
El problema era del DataSet, que utiliza el campo fecha con tipo DateTime y el nulo de este es #1/1/1900#.
Así que cuando el TextBox es nulo (está vacío), le mando al DataSet por codigo el valor DBNull.value que no me admitia el Textbox por ser String y no soportas DBNull.

Tan sencillo comoesto.

Gracias de nuevo y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas para guardar campo fecha nulo

Publicado por clabeth (1 intervención) el 14/07/2011 00:08:49
intenta enviar : vbNullString
al campo d la fecha asi solucione mi problemaa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar