我正在使用连接到访问数据库的VB程序。在我的代码中,我想检查指定行中是否存在记录,如果不存在,则执行某些操作。检查行是否存在是我的问题。在伪代码中,这就是我想要实现的目标:
If RecordAtLocationExists = False Then
...
End If
我尝试的代码包括:
If DBDataSet.Tables(TableName).Rows(QuestionNumber).IsNull = True Then
If DBDataSet.Tables(TableName).Rows(QuestionNumber) = "" Then
If DBDataSet.Tables(TableName).Rows(QuestionNumber) = Nothing Then
If DBDataSet.Tables(TableName).Rows(QuestionNumber) = Null Then
以上代码均无效。我试图寻找一个解决方案,但其他一切看起来都太复杂了。我可能正在接近这个错误,但希望它能够实现我想要实现的目标。
有什么想法吗?
答案 0 :(得分:2)
首先,您正在尝试检查记录是否存在于DataTable
,而不是数据库。自填充DataTable
以来,数据库数据可能已更改。尝试直接查询数据库:
Dim specificRow as Integer = 23 '<-- Set this variable to the specific row you are looking for
Dim query As String = "SELECT * FROM TableName WHERE QuestionNumber = ?"
Dim cmd As OleDbCommand = New OleDbCommand(query, myConnection)
cmd.Parameters.AddWithValue("questionnumber", specificRow)
dr = cmd.ExecuteReader
并测试命令是否返回行
If dr.Read() Then
' Do stuff here
Else
' Do another stuff here
End if