Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将日期插入Microsoft Access数据库_C#_Sql_Ms Access - Fatal编程技术网

C# 将日期插入Microsoft Access数据库

C# 将日期插入Microsoft Access数据库,c#,sql,ms-access,C#,Sql,Ms Access,如何编写正确的语法将日期插入数据库 这是我已经尝试过的SQL命令: "insert into table1 (date) values (#"+DateTime.Parse(DateTime.Now.ToShortDateString())+"#)" 以及: "insert into table1 (date) values ('"+DateTime.Parse(DateTime.Now.ToShortDateString())+"')" 我确信我可以在Stackoverflow上找到这个问

如何编写正确的语法将日期插入数据库

这是我已经尝试过的SQL命令:

"insert into table1 (date) values (#"+DateTime.Parse(DateTime.Now.ToShortDateString())+"#)"
以及:

"insert into table1 (date) values ('"+DateTime.Parse(DateTime.Now.ToShortDateString())+"')"

我确信我可以在Stackoverflow上找到这个问题的副本,但事实证明,我发现的许多关于C#和Access SQL的日期格式的问题都有其特殊的奇怪问题,没有直接的答案。但是,从技术上来说,答案仍然存在于其他问答中,如果您只需查看各种代码示例中字符串的格式

  • 这里的目的是构建一个SQL字符串。两个非工作示例都在调用
    DateTime.Parse()
    方法,该方法返回一个DateTime值。。。它不是字符串数据类型

  • 给定的代码正在进行完整的循环。方法
    DateTime.Now
    返回日期时间类型。但是
    ToSortDateString()
    方法将其转换为字符串。但是,
    Parse()
    函数会将该字符串转换回日期,基本上会撤消已有的内容


这个故事的寓意是什么?删除对DataTime.Parse()的调用


必须为日期表达式使用正确的字符串表达式,或使用日期()

对于其他日期值:

"insert into table1 ([date]) values (#" + someDate.ToString("yyyy'/'MM'/'dd") + "#)"

如果数据库已经是日期,为什么要将日期转换为字符串?@jdweng因为在我的数据库中,我将日期格式更改为shortdate格式。这不是我需要的只是syntex来插入date@crank你说其他评论“不是重点”,但他们认识到,对给定代码的每一部分都有误解。如果您了解了Parse和ToSortDateString所做工作的更详细信息,您可能会理解语法不正确的原因。我的回答不仅仅是语法,而且希望能够描述为什么其他代码不正确。我希望这对你有多方面的帮助。你是说小约会吗?它仍然是一个数字,而不是精度为1分钟的字符串。@crank您没有共享实际代码,因此我无法在这方面帮助您。我共享的代码应该生成一个有效字符串。也许您的区域设置正在将日期格式化为不兼容的字符串,以便Access正确解释。由您调试代码的每一部分并查看它产生了什么。Gustav的代码还演示了一个很好的观点:您应该避免使用保留字作为列名
date
是一个VBA函数,因此除非像
[date]
那样包装它,否则也可能会导致错误。
"insert into table1 ([date]) values (Date())"
"insert into table1 ([date]) values (#" + someDate.ToString("yyyy'/'MM'/'dd") + "#)"