0

嗨,距离大学项目到期还有几个小时。
这是一个基本的 Access 数据库驱动的电子商务网站。我有一个主页、一个产品页面、一个订单页面、一个订单确认页面、一个购物车页面和一个查看当前订单页面。该站点使用具有三个表的 Access 数据库。包含所有客户详细信息的客户表(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 在客户表中为 12,在订单表中为 4。这些数字在生成时不应该相同吗?提前致谢。

4

2 回答 2

2

在此处添加空格:

... Customer**SPACE**" & _
        "INNER...

(尽量不要用力捂脸伤害自己)

于 2012-05-04T20:59:26.100 回答
0

你有没有尝试过:

strSQLCommand = "SELECT Customer.*, Products.ProductName FROM Customer,Products" &_ "INNER JOIN Products ON Customer.CustomerID = Orders.CustomerID ORDER BY Customer.CustomerID DESC;"

于 2012-05-04T21:01:35.707 回答