2017-03-21 9 views
0

SQLクエリコードをVB.NETに挿入するたびにエラーが発生するのはなぜですか?VBコードにSQLクエリを追加するとコンパイルエラーが発生する

ここに私のコードだ:

Imports System.Data.OleDb 
Public Class Form1 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles                 MyBase.Load 
     Call connection() 
     Dim ds As New DataSet 
     Dim dt As New DataTable 
     Dim da As New OleDbDataAdapter 
     ds.Tables.Add(dt) 
     da = New OleDbDataAdapter("SELECT T_Order.Order_ID, T_Order.Customer_ID, T_Customer.Fname, T_Customer.Mname, T_Customer.Lname, T_Order.Employee_id, T_Employee.Employee_name 
     FROM (INNER JOIN ((T_Employee INNER JOIN (T_Customer INNER JOIN T_Order ON  T_Customer.Customer_ID = T_Order.Customer_ID) ON T_Employee.Employee_ID = T_Order.Employee_id) INNER JOIN T_OrderDetail ON T_Order.Order_ID = T_OrderDetail.Order_ID) ON T_Product.Product_Code = T_OrderDetail.Product_Code", cn) 
     da.Fill(dt) 
     DataGridView1.DataSource = dt.DefaultView 

ここでエラー出力です:

enter image description here

+0

クエリを確認してください...なぜ、内部結合が後にありますか? –

+1

あなたはそのような括弧でカバーする必要はありません....テーブル間で内部結合を入力するだけで、on条件を一度に持つことができます....すべてのテーブルを指定した後 –

答えて

0

あなたはVBで

da = New OleDbDataAdapter("SELECT T_Order.Order_ID, T_Order.Customer_ID, T_Customer.Fname, T_Customer.Mname, T_Customer.Lname, T_Order.Employee_id, T_Employee.Employee_name FROM (INNER JOIN ((T_Employee INNER JOIN (T_Customer INNER JOIN T_Order ON  T_Customer.Customer_ID = T_Order.Customer_ID) ON T_Employee.Employee_ID = T_Order.Employee_id) INNER JOIN T_OrderDetail ON T_Order.Order_ID = T_OrderDetail.Order_ID) ON T_Product.Product_Code = T_OrderDetail.Product_Code", cn) 

以下のように1行にそれらのエラーに2行をしなければなりませんCのような複数行の文字列を割り当てることはできません。 あなたはVBで複数行の文字列が必要な場合は、あなたがそう

このような
str = "string1" & _ 
     "string2" & _ 
     "string3" 

を行う必要があり、あなたのコードは次のようになります。

da = New OleDbDataAdapter("SELECT T_Order.Order_ID, T_Order.Customer_ID, T_Customer.Fname, T_Customer.Mname, T_Customer.Lname, T_Order.Employee_id, T_Employee.Employee_name" & _ 
"FROM (INNER JOIN ((T_Employee INNER JOIN (T_Customer INNER JOIN T_Order ON  T_Customer.Customer_ID = T_Order.Customer_ID) ON T_Employee.Employee_ID = T_Order.Employee_id) INNER JOIN T_OrderDetail ON T_Order.Order_ID = T_OrderDetail.Order_ID) ON T_Product.Product_Code = T_OrderDetail.Product_Code", cn) 
関連する問題