好吧,我只是想知道因为我从研究中尝试了解决方案而没有排零位的解决方案但是没有用。
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删除了它)
答案 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()