VB 从访问数据库读取

VB reading from an access database

我有以下代码,当我 运行 它和代码行的末尾时,我得到一个错误,指出

System.Data.OleDb.OleDbException: 'Syntax error (missing operator) in query expression

但我不确定这是什么意思,我正在使用 vb(在 visual studio 中)和访问数据库。该错误出现在我声明 dr 变量(我已将其用于我的数据 reader)的行中。 非常感谢,

Private Function CarFinder(b As String, m As String, s As String, d As Integer, e As String)
    myConnection.ConnectionString = My.Forms.Main.connString
    myConnection.Open()
    Dim match As String
    match = "SELECT * FROM CarFigures WHERE CBrand = '" & cbBrand.Text & "' CModel = '" &
        cbModel.Text & "' and CSpec = '" & cbSpec.Text & "'"


Using cmd As New OleDb.OleDbCommand(match, myConnection)
cmd.Parameters.AddWithValue("@b", b)
cmd.Parameters.AddWithValue("@m", m)
        cmd.Parameters.AddWithValue("@s", s)
        cmd.Parameters.AddWithValue("@d", d)
        cmd.Parameters.AddWithValue("@e", e)
        Dim dr = cmd.ExecuteReader()

        If dr.Read Then
            CO2e = dr("CCO2")
            Ins = dr("InsuranceBand")
            mpg = dr("CMPG")
            time = dr("C060Time")
            ncap = dr("CarNCAP")
            bik = dr("Bik Rating")

        End If

您的 SQL 查询字符串似乎有误。您在 "cbBrand.Text" 和 "CModel =" 之间缺少一个 AND。应该像下面这样...

match = "SELECT * FROM CarFigures WHERE CBrand = '" & cbBrand.Text & "' and  CModel = '" & cbModel.Text & "' and CSpec = '" & cbSpec.Text & "'"