2015-09-14 25 views
2

我收到以下錯誤:如何:在代碼vb.net突破和組合語句

Syntax error (missing operator) in query expression 'tblUnit.Unit_DescFROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit]'. andthis one Syntax error in FROM clause. 

的代碼部分是失敗的:

Public Class Form1 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim connetionString As String 
    Dim connection As OleDb.OleDbConnection 
    Dim oledbAdapter As New OleDb.OleDbDataAdapter 
    Dim ds As New DataSet 
    Dim i As Integer 
    Dim sql As String 
    connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=dbInventor.mdb" 
    connection = New OleDb.OleDbConnection(connetionString) 

    connection.Open() 
    sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc" _ 
     & "FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];" 

    oledbAdapter.SelectCommand = New OleDb.OleDbCommand(sql, connection) 
    oledbAdapter.Fill(ds) 
     oledbAdapter.Dispose() 
     connection.Close() 
     For i = 0 To ds.Tables(0).Rows.Count - 1 
     MsgBox(ds.Tables(0).Rows(i).Item(1)) 
     Next 
End Sub 

End Class 
+0

激起你的意思是'打破我的代碼'? – Maraboc

+1

將此「SELECT tblStocks.Stk_LinkUnit,tblUnit.Unit_Desc」更改爲此「SELECT tblStocks.Stk_LinkUnit,tblUnit.Unit_Desc」///在FROM – InferOn

+0

之前缺少空格,因此您需要「Unit_Desc」後的空格 – ElenaDBA

回答

2

你應該FROM像以前一樣添加一個空格這樣的:

sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc" _ 
    & " FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];" 
2
sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc " _ 
    & "FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];" 

sql = "SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc" _ 
    & " FROM tblUnit INNER JOIN tblStocks ON tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit];" 
0

您還可以使用文字的XML格式化長或複雜的SQL,只要你喜歡:

Dim sql = <sql> 
     SELECT tblStocks.Stk_LinkUnit, tblUnit.Unit_Desc 
     FROM tblUnit INNER JOIN tblStocks ON 
         tblUnit.[Unit_Control] = tblStocks.[Stk_LinkUnit] 
     WHERE [email protected] 
      AND [email protected] 
     </sql>.Value 

Console.WriteLine(sql) 

一定要包括.Value