我正在嘗試從具有選定客戶 ID 的客戶帳戶資料庫中檢索特定值。我不確定如何準確地做到這一點,這是我迄今為止所擁有的。
我將從組合框中選擇客戶 ID,那么我將如何在我的代碼中使用 SQL 準確地宣告它?
Dim con As New OleDbConnection 'a new connection for the database is assigned
con.ConnectionString = "Provider =Microsoft.ACE.OLEDB.12.0; data source= C:\Users\Hamza\Documents\POS system1.accdb "
con.Open()
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader
cmd = New OleDbCommand("Select Points from customers WHERE CustID= @CustID", con) 'query used to select all field
dr = cmd.ExecuteReader
txtdiscount.Text = Convert.ToInt32(dr)
con.Close()
uj5u.com熱心網友回復:
不要將資料庫代碼與用戶界面代碼混在一起。
連接和命令應該Dispose呼叫它們的方法,以便它們可以釋放非托管資源。Using...End Using塊將為您處理此問題(并關閉連接)。您需要為@ID.
的使用ExecuteScalar在評論中解決。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ID = CInt(ComboBox1.SelectedItem)
Dim Points = GetPointsByID(ID)
txtdiscount.Text = Points
End Sub
Private Function GetPointsByID(ID As Integer) As String
Dim pts As String = ""
Using con As New OleDbConnection("Provider =Microsoft.ACE.OLEDB.12.0; data source= C:\Users\Hamza\Documents\POS system1.accdb "),
cmd As New OleDbCommand("Select Points from customers WHERE CustID= @CustID", con)
cmd.Parameters.Add("@CustID", OleDbType.Integer).Value = ID
con.Open()
pts = CStr(cmd.ExecuteScalar)
End Using
Return pts
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/347401.html
