当我尝试在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条件的值。
请帮助我!
答案 0 :(得分:0)
如果我没有记错,你不能直接在你的SQL JOIN
中这样做,在WHERE
条件下怎么办呢?取决于你如何应用逻辑。
类似于WHERE Macchine.Matricola = ComboBoxMatricola.Text