Tengo un FormView donde extraigo datos de una tabla (MS Access) y luego los inserto (más más datos) en otra tabla. Tengo problemas con las fechas.¿Insertar valores nulos en campos de fecha?
La primera tabla tiene dos campos de fecha: date_submitted
y date_updated
. En algunos registros, date_updated
está en blanco. Esto hace que obtenga un error de desajuste de datos al intentar insertar en la segunda tabla.
Puede ser porque estoy vinculando el campo date_updated
de la primera tabla a un campo oculto en el FormView. A continuación, toma el valor de la HiddenField y los intentos para insertarlo en la segunda tabla:
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
myDateRequestUpdated = hfDateRequestUpdated.Value
'... It then attempts to insert myDateRequestUpdated into the database.
Funciona cuando hay un valor allí, pero al parecer no se puede insertar nada en un campo de fecha/hora en Access . Supongo que podría hacer una segunda declaración de inserción que no se inserte en date_updated
(para usar cuando no hay ningún valor en date_updated
), pero ¿es esa la única manera de hacerlo? Parece que debería haber una manera más fácil/menos redundante.
EDITAR:
bien. Así que intenté insertar SqlDateTime.Null, Nothing y DBNull.Value. SqlDateTime.Null da como resultado que el valor 1/1/1900 se inserte en la base de datos. "Nada" hace que se inserte 1/1/2001. Y si trato de utilizar DBNull.Value, me dice que no se puede convertir a una cadena, así que tal vez no hice algo bastante allí. En cualquier caso, esperaba que si no había nada para insertar que el campo en el acceso permanecería en blanco, pero parece que tiene que llenarlo con algo ...
EDITAR:
I obtuvo DBNull.Value para que funcione, y sí inserta un valor completamente en blanco. Así que este es mi código de trabajo final:
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
Dim myDateRequestUpdated = Nothing
If hfDateRequestUpdated.Value = Nothing Then
myDateRequestUpdated = DBNull.Value
Else
myDateRequestUpdated = DateTime.Parse(hfDateRequestUpdated.Value)
End If
¡Gracias a todos!
No entiendo por qué había un downvote sobre esta cuestión. Lo he invertido, pero todavía estoy desconcertado. – Fionnuala
Estoy de acuerdo, esta es una pregunta interesante. Estos campos de fecha siempre me muerden. – Steve
¿Podría agregar un ejemplo de código que muestre cómo está insertando los datos? – phoog