У меня есть форма и хранимая процедура, которая вставляет данные из формы. Он отлично работает, за исключением того, что если поле не заполнено, оно не вставляет NULL
в SQL, оно вставляет ""
.
Я пробовал несколько разных способов, но никто, кажется, не вставляет NULL
, тот, который внизу все еще вставляет ""
, может ли кто-нибудь указать мне в правильном направлении?
Вот требуемая часть кода, если вам требуется больше, просто дайте мне знать.
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
ИЗМЕНИТЬ
Я проверил следующий код:
If pd_first_name.Text = "" Then
frmFirstName = DBNull.Value
Else
frmFirstName = pd_first_name.Text
End If
Но он все еще не вставляет NULL
, поэтому я протестировал это:
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
Поэтому, если я ничего не вводил в поле address1
, он должен писать NULL
на экран, но он всегда пишет NOT NULL
. Что означает пустое поле формы? в классическом ASP всегда было ""
.