user3580480 user3580480 - 1 month ago 10
Vb.net Question

Check if VB.net dataset table exists

I have the following code to check if my table exists before proceeding

If ds.Tables(3).Rows.Count = 0 Then
MsgBox("Nothing!!!!")
Else
DataGridView1.DataSource = ds.Tables(3)


The trouble is I keep getting the error "Cannot find table 3."

How in VB can I check if the table exists, rather than my application erroring I just want it to do nothing if the table doesn't exist.

I have also tried

If ds is nothing


Any help greatly appreciated.

Answer

If you don't know if the DataSet is initialized:

If ds IsNot Nothing Then
    ' ... '
End If

If you don't know if it contains four tables(zero based indices):

If ds.Tables.Count >= 4 Then
        ' ... '
End If

So the final super safe version is:

If ds IsNot Nothing AndAlso ds.Tables.Count >= 4 Then
    Dim table As DataTable = ds.Tables(3)
End If

If you now also want to know if that table contains rows:

Dim isEmpty As Boolean = table.Rows.Count = 0