2

我们得到了这个 sql 查询:

Select EmployeeDesignation from Employee where EmployeeName = Paramater1 

(Parameter1 是传给 this 的值)

我们使用这个语句:lEmployeeDesignation = _SQLCommand.ExecuteScalar()

3个场景:

  1. 返回员工名称(表中存在记录)
  2. 没有在数据库中为 Parameter1 设置值 - 所以应该返回 NULL(记录存在但没有值)
  3. 不存在员工记录,因此不返回任何内容(记录不存在)

我在 2 和 3 场景中苦苦挣扎——在场景 3 的情况下,我们希望应用程序失败,但在努力如何捕获这个错误。问候

4

2 回答 2

1
lEmployeeDesignation = _SQLCommand.ExecuteScalar()
if lEmployeeDesignation IsNot Nothing AndAlso lEmployeeDesignation <> DBNull.Value then
    ' you have found your data....' 
Else
    if lEmployeeDesignation = DBNull.Value then
       ' you have a record for parameter1 but EmployeeDesignation field is null'
    End If
End If

请注意使用 AndAlso 来缩短评估过程。如果第一个条件为假,则不评估第二个条件

于 2012-12-10T09:41:57.553 回答
0

您可以通过...完全消除 Null

Select IsNull(Max(EmployeeDesignation),0) from Employee where EmployeeName = Paramater1

这不是一件非常好的事情,但它确实有效,只要你不做太多就可以了。

您也可以输入 Count(EmployeeDesignation)=0 来检查场景 3,当然这不能在同一个查询上完成,或者您必须使用阅读器

于 2012-12-10T10:45:35.307 回答