2017-05-14 76 views
0

我想知道如何更改下面的代码,以允许我搜索最近的记录。我正在创建一个酒店预订系统,并希望使用数据库中的最新价格,但此刻,它只是使用我不想要的标签进行搜索。访问数据库VB - 在数据库中搜索大多数“最近”记录

Dim str1 As String 
Dim dbpassword As String = "123" 
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= E:\Computing\Hotel Booking System\Database\Hotel Booking System.accdb ;Jet OLEDB:Database Password =" & dbpassword & ";" 
Dim MyConn As OleDbConnection 
Dim dr As OleDbDataReader 

Private Sub Information_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    Dim PriceFound As String = False 
    MyConn = New OleDbConnection 

    MyConn.ConnectionString = connString 

    MyConn.Open() 

    str1 = ("SELECT * FROM [Prices] WHERE [Adult] = '" & LblPriceAdult.Text & "' AND [Child] = '" & LblPriceChild.Text & "'") 

    Dim cmd1 As OleDbCommand = New OleDbCommand(str1, MyConn) 

    dr = cmd1.ExecuteReader 

    While dr.Read() 


     PriceFound = True 
     DateDisplay = dr("ID").ToString 
     AdultPrice = dr("Adult").ToString 
     ChildPrice = dr("Child").ToString 
     SingleRoom = dr("Single").ToString 
     DoubleRoom = dr("Double").ToString 
     FamilyRoom = dr("Family").ToString 

     If PriceFound = True Then 
      LblPriceAdult.Text = AdultPrice 
      LblPriceChild.Text = ChildPrice 
      LblPriceDoubleRoom.Text = DoubleRoom 
      LblPriceFamilyRoom.Text = FamilyRoom 
      LblPriceSingleRoom.Text = SingleRoom 
     End If 
    End While 
    MyConn.Close() 
End Sub 
+0

你在表中有一列建议编辑日期吗?或上次修改?或者你有一个追踪这个的审计追踪表? –

+0

是的,ID列正在用于当前日期。 – Matthew

+0

那么你不想选择MAX(ID)FROM [Prices] ORDER BY ID DESC –

回答

2

根据您之前的意见,您需要重新编写SQL来捕获最新记录。

尝试这样:

SELECT MAX(ID) FROM [Prices] ORDER BY ID DESC 
+0

哦对不起,这是必要的。我忘了你是新来的,对不起 –

0

我尝试了上述回答。然而,对于上面的代码,它不会搜索最新的,所以我改变了DESCASC