检查是否存在访问数据库记录

时间:2014-05-06 09:48:45

标签: database vb.net ms-access

我正在使用连接到访问数据库的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

以上代码均无效。我试图寻找一个解决方案,但其他一切看起来都太复杂了。我可能正在接近这个错误,但希望它能够实现我想要实现的目标。

有什么想法吗?

1 个答案:

答案 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