零行没有位置(Visual Basic)

时间:2014-01-28 04:37:35

标签: vb.net visual-studio-2013

好吧,我只是想知道因为我从研究中尝试了解决方案而没有排零位的解决方案但是没有用。

 Private Sub Menu_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    TimerDate.Start()
    connMainMenu.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Application.StartupPath & "\BANKDetails.accdb"
    connMainMenu.Open()
    AdapatMainMenu1 = New OleDbDataAdapter("select * from BANKreg where FirstName= '" + WelcomeTexttxt.Text + "'", connMainMenu)
    DsetMainMenu1 = New DataSet
    AdapatMainMenu1.Fill(DsetMainMenu1)

    WelcomeTexttxt.Text = "Welcome " & DsetMainMenu1.Tables(0).Rows(0)(2).ToString()

    connMainMenu.Close()

现在问题是我使用If条件仍然会出错。我放的主键是FIrstName(不是ID,因为我从头开始制作数据库时通过MS ACCESS删除了它)

2 个答案:

答案 0 :(得分:1)

这意味着您的数据集中没有记录。 所以你需要先检查才能像这样处理

If DsetMainMenu1.Tables(0).Rows.Count > 0 AndAlso DsetMainMenu1.Tables.Count > 0 AndAlso DsetMainMenu1 IsNot Nothing Then
   WelcomeTexttxt.Text = "Welcome " & DsetMainMenu1.Tables(0).Rows(0)(2).ToString()
End If

使用ColumnName而不是ColumnIndex

还有一件事情更好
If DsetMainMenu1.Tables(0).Rows.Count > 0 AndAlso DsetMainMenu1.Tables.Count > 0 AndAlso DsetMainMenu1 IsNot Nothing Then
   WelcomeTexttxt.Text = "Welcome " & DsetMainMenu1.Tables(0).Rows(0)("ColumnName").ToString()
End If

答案 1 :(得分:0)

如果您遇到错误,请尝试以下方法:

If DsetMainMenu1.Tables.Count > 0 Then
    If DsetMainMenu1.Tables(0).Rows.Count > 0 Then
        WelcomeTexttxt.Text = "Welcome " & DsetMainMenu1.Tables(0).Rows(0)(2).ToString()
    End If
End If

首先检查是否有表,如果有,请检查0索引表中的行

至于获取确切的列值,如下所示(将nameOfAccount替换为您选择的正确列):

WelcomeTexttxt.Text = "Welcome " & DsetMainMenu1.Tables(0).Rows(0)("nameOfAccount").ToString()