尝试通过 C# 将日期插入到 .accdb 中,但数据出错了

范植勝*_*范植勝 1 c# sql ms-access

我试图运行这个 sql

insert into Registration (sn, regDate) values ('RS5044737',Format('2021/06/15 10:22:20', 'yyyy/mm/dd hh:nn:ss'));
Run Code Online (Sandbox Code Playgroud)

但在我的 .accdb 文件中,数据出错了:

在此处输入图片说明

我不知道为什么年份变成了1478......

环境:

C# 2008

访问 2007

Cai*_*ard 5

如果你使用参数就不会发生

insert into Registration (sn, regDate) values (?, ?);
Run Code Online (Sandbox Code Playgroud)

command.Parameters.AddWithValue("n", "RS5044737");
command.Parameters.AddWithValue("d", new DateTime(2021,6,15,10,22,20)); 
Run Code Online (Sandbox Code Playgroud)

以相同的顺序添加参数?出现在声明中。

始终,始终使用参数。它可以防止:

  • 像你得到的数据错误
  • 如果您尝试在人名中插入撇号,则会随机崩溃
  • 你因严重破坏安全而被解雇

如果升级到 SQLserver,请不要使用AddWithValue(但始终使用参数)