none
vb2008 速成版中的bug -更新access 2007数据库 RRS feed

  • 问题

  • 我用vb2008 速成版,access2007,数据表company中只有c name一个字段,并且表中存在MCRO这条记录,执行如下程序 会报错:UPDATE 语句的语法错误。  
    Dim sqlStr As String
        Dim dtp As New DataTable
       sqlStr = "select * from Company where [c name]='MCRO'"
            Dim dataAdapter = New OleDb.OleDbDataAdapter(sqlStr, connStr)
            dataAdapter.Fill(dtp)
            Dim build As New OleDb.OleDbCommandBuilder(dataAdapter)
           dtp.Rows(0)("c name") = "MCRO"
    dataAdapter.Update(dtp)
    但是,只要不执行update更新就不出错,查询可以,引用dtp中的记录和字段都正常。
    将数据库中的company表中的字段[c name]改成[cname],再修改程序如下就正常了,数据可以更新了。看来vb2008对于有空格的字段名处理有错误。
    Dim sqlStr As String
        Dim dtp As New DataTable
       sqlStr = "select * from Company where [cname]='MCRO'"
            Dim dataAdapter = New OleDb.OleDbDataAdapter(sqlStr, connStr)
            dataAdapter.Fill(dtp)
            Dim build As New OleDb.OleDbCommandBuilder(dataAdapter)
           dtp.Rows(0)("cname") = "MCRO"
    dataAdapter.Update(dtp)
    2009年9月14日 1:32

答案