嗨,我还有几个小时的时间,直到一个单一的项目到期为止
它是一个基本的Access数据库驱动的电子商务网站。我有一个主页,一个产品页面,一个订单页面,一个订单确认页面,一个购物车页面和一个查看当前订单页面。该站点使用具有三个表的Access数据库。包含所有客户详细信息的Customer表(FirstName,LastName,EmailAdd,CardNo,CardEx,SortCode,DeliveryAdd,Postcode)
Products表,包含所有产品信息,(ProductID,ProductName,Price,ProductType,Images,ProductDescription)。
以及包含CustomerID和ProductID的Orders表。
我设法让订单页面工作,这导致订单确认页面显示客户刚刚放置的详细信息。
这是我到目前为止在订单确认页面加载事件中的内容。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strDatabaseNameAndLocation As String
strDatabaseNameAndLocation = Server.MapPath("KingToots.mdb")
Dim strSQLCommand As String
strSQLCommand = "SELECT Customer.*, Products.ProductName FROM Customer" & _
"INNER JOIN Products ON Customer.CustomerID = Orders.CustomerID ORDER BY Customer.CustomerID DESC;"
Dim objOleDbConnection As System.Data.OleDb.OleDbConnection
objOleDbConnection = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=" & strDatabaseNameAndLocation)
objOleDbConnection .Open()
Dim objOleDbCommand As System.Data.OleDb.OleDbCommand
objOleDbCommand = New System.Data.OleDb.OleDbCommand(strSQLCommand, objOleDbConnection)
Dim objOleDbDataReader As System.Data.OleDb.OleDbDataReader
objOleDbDataReader = objOleDbCommand.ExecuteReader()
Dim datDataTable As System.Data.DataTable
datDataTable = New System.Data.DataTable()
datDataTable.Load(objOleDbDataReader)
gdvOrderdetails.DataSource = datDataTable
gdvOrderdetails.DataBind()
objOleDbConnection.Close()
End Sub
这将返回此错误“FROM子句中的语法错误”。我猜我的SQL代码错了。我注意到当我在订单页面下订单时,它在Access数据库中添加了一个条目,其中生成的CustomerID在customers表上为12,在orders表中为4。这些数字在生成时是否应该相同?提前谢谢。
答案 0 :(得分:2)
在此处添加空格:
... Customer**SPACE**" & _
"INNER...
(尽量不要因面对困难而伤害自己)
答案 1 :(得分:0)
你试过了吗?
strSQLCommand =“SELECT Customer。*,Products.ProductName FROM Customer,Products”& _ “在Customer.CustomerID = Orders.CustomerID ORDER BY Customer.CustomerID DESC; INNER JOIN Products;”