2017-05-14 74 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