2012-05-04 45 views
0

こんにちは私はユニプロジェクトが完了するまで数時間を残しています。
基本的なAccessデータベース駆動型の電子商取引サイトです。ホームページ、商品ページ、注文ページ、注文確認ページ、ショッピングカートページ、現在の注文ページを表示しています。このサイトでは、3つのテーブルを持つAccessデータベースが使用されています。顧客の詳細(FirstName、LastName、EmailAdd、CardNo、CardEx、SortCode、DeliveryAdd、Postcode)を含むCustomerテーブル
すべての製品情報(ProductID、ProductName、Price、ProductType、 Images、ProductDescription)。 顧客IDと商品IDを含む注文テーブル。 注文ページが機能するようになったので、注文確認ページが表示され、顧客が今置いた詳細が表示されます。 注文確認ページのロードイベントはここまでです。注文した顧客の注文を表示する方法

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

あなたのINNER JOINが正しく表示されません。 'Customer.CustomerID = Orders.CustomerID'で' Productsに参加する?実際には、クエリのOrdersテーブルを参照していません。 –

+0

これで、INNER JOINを使用する前に、Ordersテーブルからすべてを選択する必要がありますか? – Keys

答えて

2

ここにスペースを追加します。

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

(ハードにpalming顔で自分を傷つけないようにしてください)

+0

ありがとうございます。今、「JOIN操作で構文エラーが発生しました。」私は間違って何をしましたか? – Keys

+0

クエリ内に存在しない結合内のテーブルを参照しているようです。 – asawyer

+0

OK注文表も選択する必要がありますか? Ordersテーブルの自動生成されたCustomerIDフィールドと異なるCustomerIDフィールドの自動生成番号が問題になることはありますか?確かに、これらはJOINが機能するためには同じである必要があります。 – Keys

0

あなたが試してみました:。

をstrSQLCommandは=「顧客を選択*、 Products.ProductName From FROM Customer、製品 "& _ " INNER JOIN製品上の顧客。顧客ID =注文。顧客ID ORDER BY顧客。顧客ID DESC; "

+0

こんにちは。そのコードに変更され、依然としてJOINエラーが発生します。 – Keys

関連する問題