我尝试通过C#向Access数据库插入日期时出现“INSERT INTO语句中的语法错误”错误

时间:2012-06-14 22:43:51

标签: c# datetime insert

我想将日期记录插入Access数据库。这是我的代码:

cmd.CommandText = "INSERT INTO AlarmHistory(Date) VALUES ('6/8/2012')"; 
cmd.ExecuteNonQuery(); 

第二行出现Syntax error in INSERT INTO statement.错误。

在db上显示我的单元格数据类型的屏幕截图如下所示。

Cell data type at db

5 个答案:

答案 0 :(得分:6)

使用参数

cmd.CommandText = "INSERT INTO AlarmHistory([Date]) VALUES (?)";  
cmd.Parameters.AddWithValue("@date", new DateTime(2012,06,8));
cmd.ExecuteNonQuery();

这会保留您SqlInjection的代码,您可以停止担心引用您的值 -

刚尝试创建虚拟数据库。这是日期字段。您应该用方括号括起来,因为Date是保留关键字

Here the list Jet 4.0的保留关键字

答案 1 :(得分:2)

也许date是保留字。如果是这样,它应该被分隔(可能带括号):

INSERT INTO AlarmHistory([Date]) VALUES ('6/8/2012')

答案 2 :(得分:1)

尝试使用

"INSERT INTO AlarmHistory(Date) VALUES ('#6/8/2012#')"

答案 3 :(得分:1)

您应该在解决问题的日期周围添加#符号。

答案 4 :(得分:0)

请在创建数据库表之前记住,避免给出字段名称DATE和NAME

插入时会抛出错误。 eg..give字段密码,日期而不是像那样给出,password_user,bill_date

注意:MS Access表格中的日期和密码不可接受字段名称.bcoz它是一个关键字。

它应该解决您的问题

感谢。 Rathina。