在Visual Basic中使用SQL字符串中的ComboBox值进行INNER JOIN

时间:2015-09-28 23:47:43

标签: sql visual-studio-2012 combobox inner-join

当我尝试在SQL字符串中使用组合框值时,我在Visual Basic中遇到INNER JOIN的问题。

此代码工作:

{
Private Sub ComboBoxMatricola_TextChanged(sender As Object, e As EventArgs) Handles ComboBoxMatricola.TextChanged
        Dim connection As New OleDb.OleDbConnection
        Dim command As New OleDb.OleDbCommand
        connection.ConnectionString = "PROVIDER = Microsoft.ACE.OLEDB.12.0; Data Source = DBManutenzione.accdb"
        connection.Open()

        Dim SqlCmd = "SELECT DatiManutenzione.Fase, DatiManutenzione.IDGrandezza, DatiManutenzione.FrequenzaGrandezza, DatiManutenzione.Descrizione, DatiManutenzione.FrequenzaTemporale, Macchine.Matricola FROM Macchine INNER JOIN (DatiManutenzione INNER JOIN Manutenzione ON DatiManutenzione.ID = Manutenzione.IDManutenzioneProgrammata) ON Manutenzione.Matricola = Macchine.Matricola"
        command = New OleDb.OleDbCommand(SqlCmd, connection)

        Dim readerQuery As OleDb.OleDbDataReader
        readerQuery = command.ExecuteReader()
        Dim Count As Integer
        Count = 0
        While readerQuery.Read()
            Count = Count + 1
        End While
        MsgBox(Count)
        connection.Close()
    End Sub
}

当我像这样修改SqlCmd时:

...ON Manutenzione.Matricola ='" & ComboBoxMatricola.Text & "'"

我有这个错误:

不支持JOIN表达式

我必须从组合框中读取ON条件的值。

请帮助我!

1 个答案:

答案 0 :(得分:0)

如果我没有记错,你不能直接在你的SQL JOIN中这样做,在WHERE条件下怎么办呢?取决于你如何应用逻辑。

类似于WHERE Macchine.Matricola = ComboBoxMatricola.Text