使用C#,我在Access中直接使用的数据库出了问题。我使用了OleDbDataAdapter,OleDbCommandBuilder和DataTable。 update命令由OleDbCommandBuilder生成。使用此更新命令将在UPDATE语句中生成语法错误。
作为测试,我创建了一个真正简单的Access数据库,其中包含2个字段:Name和Job。使用我上面描述的确切代码(除了明显的更改),update命令对此工作正常。然后我创建了另一个包含5个字段的数据库:Name,Job,Id,Year和Country,但这与上面的语法错误相同。我注释掉了不同的字段分配,直到我发现它是导致错误的“Year”字段。 Id和Year字段都是整数,其他字段是文本。它将更新Id字段和文本字段,但如果我包含Year字段,则会生成错误。没有意义!
任何人都可以理解这个并帮助吗???有没有办法查看OleDbCommandBuilder正在使用的SQL更新表达式?
谢谢!
瓦尔哈拉
答案 0 :(得分:2)
'年份'是MS Access DB中的保留字,请参阅http://support.microsoft.com/kb/286335。您可以将字段Year重命名为其他内容,例如' _Year'。
答案 1 :(得分:0)
您必须在括号中放置与MS Access中保留名称相对应的字段名称(如年份)(例如:[Year]
)。