2017-03-15 80 views
0

我试图更新我的数据库,但语法错误仍在继续。我试图找到语法错​​误,但我无法找到它。这个数据库是密码保护的。UPDATE语句中的语法错误 - MS。访问

sql12 = "SELECT * FROM x Where id='rd1996'" 
da12 = New OleDb.OleDbDataAdapter(sql12, con)  
da12.Fill(ds12, "tbl12") 

Dim cd As New OleDb.OleDbCommandBuilder(da12) 

ds12.Tables("tbl12").Rows(0).Item(1) = txtNNM.Text 
ds12.Tables("tbl12").Rows(0).Item(2) = txtNPS.Text 
DataGridView1.DataSource = ds12.Tables("tbl12") 

da12.Update(ds12, "tbl12") 

回答

-1

最常见的原因是您的一个列名是保留字或包含空格或其他特殊字符。在查询中使用通配符时,命令构建器不会转义操作命令中的列名称,并会出现语法错误结果。您有三种选择:

  1. 将您的列名更改为不需要转义的内容。 即使您使用其他选项之一,您也应该这样做。
  2. 请勿在查询中使用通配符,而应指定每一列 ,在这种情况下,您至少需要引用冒犯的 列,并且命令生成器将按照您的指示行事。
  3. 设置您的命令 构建器的QuotePrefixQuoteSuffix属性,以便它将所有列名称包含在这些值中。对于 访问,您将分别使用“[”和“]”。