Vb.net 数据表的错误处理
我有一个带有数据表的for循环,我试图弄清楚数据表中是否没有行。它是否忽略了其中没有行的事实而继续前进,还是失败并给出异常?这是我的循环代码,但这个问题在所有情况下都应该是相同的Vb.net 数据表的错误处理,vb.net,datatable,Vb.net,Datatable,我有一个带有数据表的for循环,我试图弄清楚数据表中是否没有行。它是否忽略了其中没有行的事实而继续前进,还是失败并给出异常?这是我的循环代码,但这个问题在所有情况下都应该是相同的 For Each dr As DataRow In dt.Rows If Not IsDBNull(dr.Item("MATERIALID")) And dr.Item("MATERIALID") IsNot Nothing Then listOfResults.Add(CUInt(
For Each dr As DataRow In dt.Rows
If Not IsDBNull(dr.Item("MATERIALID")) And dr.Item("MATERIALID") IsNot Nothing Then
listOfResults.Add(CUInt(dr.Item("MATERIALID")))
Else
Trace.TraceError("Error Details: {0} Stack: {1}", "The materialID is nothing/null", System.Reflection.MethodInfo.GetCurrentMethod.ToString)
End If
Next
如果datatable没有行,那么它将命中for循环并退出,并在for循环之后执行下一条语句。
注意:但是如果datatable dt为nothing,那么它将抛出一个异常。我们的策略是检查datatable是否为nothing以及是否有行。它在一个if语句中去掉了这两个条件
if not dt is nothing andalso dt.hasrows then
'loop here
end if
如果我建议检查
dt.Rows.Count()=0
,是否会遗漏一些内容?好的,但是如果数据表没有行,并且命中了它,会发生什么?它会失败并发出异常吗?没有异常。并且仅当dt不是空时,才会检查dt.hasrows。如果第一部分为假,则说明为假。@Engerlost是正确的。我的开发团队在检查一个变量的值时使用这个标准,这个值可以是空的。在检查变量的值之前,我们总是确保变量不是空的。