Insertar valor nulo en un campo fecha con SqlServer 2005

19/04/2010 - 15:00 por David Varez | Informe spam
Hola buenas, estoy trabajando con Visual Studio 2008 contra SqlServer 2005.
Hay un punto de la aplicación que tengo que insertar un valor en un campo de
tipo fecha. Los valores que se pueden insertar en ese campo son una fecha o
un nulo, pero cuando intento guardar un nulo me da error, y si guardo un
espacio en blanco, me guarda '01/01/1900', lo cual tampoco quiero.
El campo en la base de datos permite valores numéricos.

Muchas gracias por todo.
 

Leer las respuestas

#1 Leandro Tuttini
19/04/2010 - 15:10 | Informe spam
hola

has definido que el campo en tu tabla en el sql server permita nulos ?

si es asi podrias usar parameto en tu insert y pasarse un DbNull.Value

algo como esto

Using cnn As New OleDbConnection( "connection string")

Try
cnn.Open()

Dim sql As String = "INSERT INTO <tabla> (idCode, nombres, apells,
lugnac, fecnac) " & _
"Values (@id, @nombre, @apellido, @fecnac)"

Dim cmd As New OleDbCommand(sql, cnn)

cmd.Parameters.AddWithValue("@id", 444195)
cmd.Parameters.AddWithValue("@id", "PEDRO")
cmd.Parameters.AddWithValue("@apellido", "PEREZ")

Dim fecha As DateTime
If DateTime.TryParse(txtFecha.Text, fecha)
cmd.Parameters.AddWithValue("@fecnac", fecha)
Else
cmd.Parameters.AddWithValue("@fecnac", DbNull.Value)
End If

cmd.ExecuteNonQuery

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Using

como veras es solo un ejemplo, pero alli se la fecha no se peude
convertir al tipo, pone en la db un null

saludos

Preguntas similares