我的程序中有一个sub,如果它们的过期日期已过,则从我的访问数据库中删除项目。我正在使用oledbdatareader来查找需要删除的行。我的问题是这个sub的大部分都不会执行。我使用了一个消息框告诉我在定义了我的datareader之后代码没有运行。
我在许多其他函数和表单中使用了相同的代码,并且它工作正常,但由于某些原因,在这个子目录中它并没有。谁能看到我的问题?
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