DataTable如何高效检查是否有行数据

9
我有一个函数,用于搜索关键字并返回数据表。我想检查其中是否有行,因为有时没有找到查询结果。
    'which one shoud I use ?
    If dtDataTable Is Nothing Then
        'some code
        lbl_count.Text = "Found 0 result"
    End If

    If dtDataTable.Rows.Count > 0 Then
        'some code
        lbl_count.Text = "Found " & dtDataTable.Rows.Count.ToString & " results"
    End If

感谢您的选择。

我在询问应该使用哪一个,而不是两个都用。无论如何,感谢所有的回复。 - Tola
4个回答

26

那么这样怎么样:

If dtDataTable IsNot Nothing AndAlso dtDataTable.Rows.Count > 0 Then
    'some code
    lbl_count.Text = "Found " & dtDataTable.Rows.Count.ToString & " results"
Else
    'some code
    lbl_count.Text = "Found 0 result"
End If

3
如果您使用的是VB 9.0(VS 2008),您可以使用以下方法简化此过程。
lbl_count.Text = String.Format("Found {0} result(s)", if(dbDataTable, dbDataTable.Rows.Count,0))

1
你应该使用第二个,我认为第一个不会起作用。如果第一个起作用了,第二个也不会起作用,因为dtDataTable.Rows会抛出空引用异常。

是的,它会抛出“对象引用未设置为对象实例”的异常。 - Tola

1

Steve Echols 把两个问题都解决了,你要知道 Andalso 会检查第一个条件,如果第一个条件失败,则返回 FALSE;只有当第一个条件为 TRUE 时,它才会检查第二个条件。

这样 John Boker 的观点也得到了照顾!

向他们两个致敬!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接