Как предотвратить сбои при нулевом параметре - PullRequest
0 голосов
/ 18 февраля 2010

Я вставляю значение динамического контроля в БД, например, так:

Dim ae1 As DropDownList = FindControl("AreasExpertise1")
        If (ae1 IsNot Nothing) Then
            x.Parameters.AddWithValue("@areasexpertise1", ae1.SelectedValue)
        End If

тогда в моем запросе у меня есть такие параметры;

INSERT INTO [foo] ([etc], [etc], [etc], [areasexpertise1], [areasexpertise2])
VALUES (@etc, @etc, @etc, @areasexpertise1, @areasexpertise2)

Когда пользователь заполняет форму, он видит только areasexpertise1 и должен нажать кнопку, чтобы динамически вставить другую область знаний ...

Если у них есть только одна область знаний, запрос завершается сбоем и говорит «необходимо объявить переменную @ areasexpertise2.

Подскажите, пожалуйста, способ вставить нули, когда параметры пусты, или игнорировать их?

Большое спасибо

1 Ответ

2 голосов
/ 18 февраля 2010

Попробуйте передать в DBNull.Value, как это:

If (ae1 IsNot Nothing) Then
    x.Parameters.AddWithValue("@areasexpertise1", ae1.SelectedValue)
Else
   x.Parameters.AddWithValue("@areasexpertise1", DBNull.Value)
End If
...