使用带有ms访问权限的vb.net作为db时,条件表达式中的数据类型不匹配

时间:2013-10-26 12:33:34

标签: vb.net ms-access

请告诉我为什么会出现这种错误

标准表达式中的数据类型不匹配。

Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

    dp = "Provider=Microsoft.Jet.OLEDB.4.0;"
    src = "Data source=c:\Database\licdb.mdb"        
    con.ConnectionString = dp & src
    con.Open()

    query = "select * from year2008 where id = '" & id & "'"
    da = New OleDb.OleDbDataAdapter(query, con)
    da.Fill(ds1, "tab")
    TextBox1.Text = ds1.Tables("tab").Rows(id).Item(0)
    TextBox2.Text = ds1.Tables("tab").Rows(id).Item(1)
    TextBox3.Text = ds1.Tables("tab").Rows(id).Item(2)
    TextBox4.Text = ds1.Tables("tab").Rows(id).Item(3)
    TextBox5.Text = ds1.Tables("tab").Rows(id).Item(4)
    TextBox14.Text = ds1.Tables("tab").Rows(id).Item(5)
    TextBox7.Text = ds1.Tables("tab").Rows(id).Item(6)
    TextBox8.Text = ds1.Tables("tab").Rows(id).Item(7)
    TextBox9.Text = ds1.Tables("tab").Rows(id).Item(8)
    TextBox10.Text = ds1.Tables("tab").Rows(id).Item(9)
    TextBox16.Text = ds1.Tables("tab").Rows(id).Item(10)
    TextBox11.Text = ds1.Tables("tab").Rows(id).Item(11)
    con.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

此处的代码中未定义变量“id”。问题可能是变量“id”的类型与数据库的“id”列的类型不同。如果变量“id”不是数字,并且表列“id”是数字数据类型,则会导致此错误。

您可以检查变量“id”以确保它具有数值:

if isnumeric(id) then...