Public Class frmOrder
Dim ItemNumber As String
Dim con As New OleDb.OleDbConnection
Dim dbprovider As String
Dim dbsource As String
Dim ds As New DataSet
Dim da As OleDb.OleDbDataAdapter
Dim sql As String
Dim ds1 As New DataSet
Dim da1 As OleDb.OleDbDataAdapter
Dim sql1 As String
Dim ds2 As New DataSet
Dim da2 As OleDb.OleDbDataAdapter
Dim sql2 As String
Dim ds3 As New DataSet
Dim da3 As OleDb.OleDbDataAdapter
Dim sql3 As String
Dim ds4 As New DataSet
Dim da4 As OleDb.OleDbDataAdapter
Dim sql4 As String
Dim lastReceiptNumber As Integer
Dim CustomerID1 As Integer
Private Sub frmOrder_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ItemNumber = frmShop.Label13.Text
CustomerID1 = Convert.ToInt32(frmLogin.Label3.Text)
dbprovider = "PROVIDER = Microsoft.ACE.OLEDB.12.0;"
dbsource = "Data Source = C:\Users\Patrick\Desktop\FinalDatabase.accdb"
con.ConnectionString = dbprovider + dbsource
con.Open()
sql = "SELECT * FROM ITEMS"
da = New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "Items")
sql1 = "SELECT Address FROM CUSTOMER WHERE CustomerID= " & CustomerID1 & ""
da1 = New OleDb.OleDbDataAdapter(sql1, con)
da1.Fill(ds1, "Address")
sql2 = "SELECT * FROM [ORDER]"
da2 = New OleDb.OleDbDataAdapter(sql2, con)
da2.Fill(ds2, "ORDER")
sql3 = "SELECT MAX(ReceiptNumber) FROM [ORDER]"
da3 = New OleDb.OleDbDataAdapter(sql3, con)
da3.Fill(ds3, "Orders")
sql4 = "SELECT * FROM DELIVERY"
da4 = New OleDb.OleDbDataAdapter(sql4, con)
da4.Fill(ds4, "Delivery")
con.Close()
txtItemCode.Text = ds.Tables("Items").Rows(ItemNumber).Item(0)
txtItemName.Text = ds.Tables("Items").Rows(ItemNumber).Item(1)
txtSize.Text = ds.Tables("Items").Rows(ItemNumber).Item(2)
txtPrice.Text = ds.Tables("Items").Rows(ItemNumber).Item(4)
txtDeliveryFee.Text = "100.00"
txtDeliveryAddress.Text = ds1.Tables("Address").Rows(0).Item(0)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
frmShop.Show()
Me.Close()
End Sub
Private Sub btnBuy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuy.Click
Dim today As System.DateTime
Dim deliverydate As System.DateTime
today = System.DateTime.Now
deliverydate = today.AddDays(7)
Dim cb As New OleDb.OleDbCommandBuilder(da2)
Dim dsNewRow As DataRow
Dim cb1 As New OleDb.OleDbCommandBuilder(da3)
Dim dsNewRow1 As DataRow
dsNewRow = ds2.Tables("ORDER").NewRow()
dsNewRow.Item(1) = CustomerID1
dsNewRow.Item(2) = txtItemCode.Text
dsNewRow.Item(3) = txtQuantity.Text
dsNewRow.Item(4) = txtPrice.Text
dsNewRow.Item(5) = txtDeliveryFee.Text
ds2.Tables("ORDER").Rows.Add(dsNewRow)
da2.Update(ds2, "ORDER")
lastReceiptNumber = ds3.Tables("Orders").Rows(0).Item(0)
dsNewRow1 = ds4.Tables("Delivery").NewRow()
dsNewRow1.Item(0) = lastReceiptNumber
dsNewRow1.Item(1) = txtDeliveryAddress.Text
dsNewRow1.Item(3) = deliverydate
dsNewRow1.Item(4) = "Processing"
ds4.Tables("Delivery").Rows.Add(dsNewRow1)
da4.Update(ds4, "Delivery")
MsgBox("Item Bought!", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)
End Sub
IM上da2.Fill(DS2,「訂單」),有人可以幫我這個有錯誤?錯誤是語法錯誤插入到語句中。我會很感激所有那些會有所幫助的。謝謝!
你爲什麼不使用鏈接表? – JCro
你的代碼有很多問題。請修改您的編碼風格,嘗試捕獲錯誤,嘗試使用「使用」方法,並讓系統在您使用後關閉連接,嘗試使用參數以避免sql注入,最後請使用表格的前綴來消除名稱衝突!訂單是訪問中的關鍵字! –
@krishKM:我假設你的意思是'使用'*聲明*。我堅決不同意你的「表格的前綴」建議。 – onedaywhen