Tengo un formulario y un procedimiento almacenado que inserta los datos del formulario. Funciona bien, excepto que si un campo no está lleno, no inserta un NULL
en SQL, inserta ""
.Cómo insertar NULL en la base de datos si el campo de formulario está vacío
He intentado algunas formas diferentes pero ninguna parece insertar NULL
, la que sigue aún inserta ""
, ¿alguien puede indicarme la dirección correcta?
Aquí está la parte requerida del código, si necesita más solo hágamelo saber.
Dim rdr As SqlDataReader
Dim cmdInsert As SqlCommand = New SqlCommand()
cmdInsert.CommandText = "spPersonalDetailsInsert"
cmdInsert.CommandType = CommandType.StoredProcedure
cmdInsert.Connection = connSQL
Dim firstname, lastname, address, address1, town, county, postcode As SqlParameter
'convert to null if ""
Dim frmFirstName As String
If pd_first_name.Text = "" Then
frmFirstName = Convert.DBNull
Else
frmFirstName = pd_first_name.Text
End If
firstname = New SqlParameter()
firstname.ParameterName = "@firstname"
firstname.SqlDbType = SqlDbType.NVarChar
firstname.Size = 50
firstname.Direction = ParameterDirection.Input
firstname.Value = frmFirstName
EDITAR
He probado el siguiente código:
If pd_first_name.Text = "" Then
frmFirstName = DBNull.Value
Else
frmFirstName = pd_first_name.Text
End If
Sin embargo, todavía no se inserta NULL
así que prueban esto:
If pd_first_name.Text = "" Then
Response.Write("NULL")
address1.Value = DBNull.Value
Else
Response.Write("NOT NULL")
address1.Value = pd_address1.Text
End If
Así que si yo no ingrese nada en el campo address1
shou ld escribe NULL
a la pantalla pero siempre escribe NOT NULL
. ¿Qué es igual a un campo de formulario vacío? en el clásico ASP siempre fue ""
.
Acabo de probar anteriormente y todavía no inserta NULL, vea la pregunta editada arriba, gracias. – JBoom
Esto realmente funciona, es mi culpa, estaba haciendo referencia al campo de formulario incorrecto en mi código editado, gracias Barry. – JBoom