更新Access数据库整数值时OleDbCommandBuilder查询表达式出错

时间:2014-10-09 23:03:33

标签: c#

使用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更新表达式?

谢谢!

瓦尔哈拉

2 个答案:

答案 0 :(得分:2)

'年份'是MS Access DB中的保留字,请参阅http://support.microsoft.com/kb/286335。您可以将字段Year重命名为其他内容,例如' _Year'。

答案 1 :(得分:0)

您必须在括号中放置与MS Access中保留名称相对应的字段名称(如年份)(例如:[Year])。