access [EN version]自动转换MM / dd / yyyy中的日期dd / MM / yyyy

时间:2016-04-06 16:17:03

标签: date datetime ms-access

我有这个问题:

我有一个小型管理程序,包括c#和DB Access 2016。 我的键盘和系统语言是意大利语。 我的DB Access是英文的

在查询中,我发送 System.DateTime.Today.ToString(&#34; dd / MM / yyyy&#34;) 日期格式,例如< / p>

string update = "UPDATE RICHIESTA_IT SET RICHIESTA_IT.stato_approvazione = YES, RICHIESTA_IT.data_approvazione = #" + System.DateTime.Today.ToString("dd/MM/yyyy") + "# WHERE(((RICHIESTA_IT.ID_RichiestaIT) = " + iD_Richiesta + "))";
MessageBox.Show(update);
//qa is my object that help me to connection,query,disconnet to DB ..
qa.runNonQuery(update);

// without parametric query
// #06/04/2016#

但在访问db中我看到了

04/06/2016 

这是我读这个日期时的一个大问题。

如何解决?

我试图设置一个面具..但我没有解决......

1 个答案:

答案 0 :(得分:3)

问题是你没有使用参数。

您试图猜测MS Access内部使用的格式并且失败了。 如果您使用#...#日期文字,他们必须使用yyyy-MM-ddMM/dd/yyyy格式(我更喜欢前者,因为它是不明确的)。这就是定义#...#日期文字的方式。您不能在此处使用本地化(例如意大利语)格式。

要解决您的直接问题,您可以使用

... #" + System.DateTime.Today.ToString("yyyy-MM-dd") + "# ...

... #" + System.DateTime.Today.ToString(@"MM\/dd\/yyyy") + "# ...

但请考虑using parameterized queries。这并不难,你可以避免所有那些丑陋的日期格式/小数点/字符串转义问题。

相关问题