0

我的程序中有一个子程序,如果它们的过期日期已过,它会从我的访问数据库中删除项目。我正在使用 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
4

0 回答 0