我的程序中有一个子程序,如果它们的过期日期已过,它会从我的访问数据库中删除项目。我正在使用 oledbdatareader 查找需要删除的行。我的问题是这个子的大部分都不会执行。我使用了一个消息框告诉我,在我定义了我的数据阅读器之后代码没有运行。
我在许多其他函数和表单中使用了相同的代码,它工作正常,但由于某种原因,在这个 sub 中它没有。谁能看到我的问题?
Private Sub AutoDate()
Using connection As New OleDbConnection(connectionstring)
connection.Open()
Dim Command As New OleDbCommand("SELECT ExpirationDate FROM Iventory", connection)
Dim Command2 As New OleDbCommand("DELETE FROM Inventory WHERE ExpirationDate = @p1", connection)
MessageBox.Show("Got here") 'This messagebox shows
Dim Reader As OleDbDataReader = Command.ExecuteReader()
MessageBox.Show("Got here") 'This messagebox does not show
While Reader.Read()
Dim ExpDate As DateTime = Reader.Item("ExpirationDate")
Command2.Parameters.AddWithValue("@p1", ExpDate)
If ExpDate.ToString < System.DateTime.Today.ToString Then
Dim cmd = Command2.ExecuteNonQuery()
If cmd > 0 Then
MessageBox.Show("Out of date items have been removed from database")
Else
Exit Sub
End If
End If
End While
connection.Close()
End Using
End Sub