Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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# 带有日期范围问题的C和MS Access查询_C#_Ms Access - Fatal编程技术网

C# 带有日期范围问题的C和MS Access查询

C# 带有日期范围问题的C和MS Access查询,c#,ms-access,C#,Ms Access,我正在编写一个查询,以便在不同数据库中的两个MS Access表之间传输数据。事情的转移方面是好的。然而,我在设置“到/从日期”时遇到了实际问题 我的电脑是为英国安装的,但我相信MS-SQL查询会将查询转换为我们。你可以想象,某些日期,如2013年11月1日或2013年11月1日,会给我带来不正确的结果 我一直在尝试不同的事情,但结果却很奇怪,所以我需要一些指导,告诉大家应该怎么做。以下是当前查询的示例以及在运行期间创建的选择零件。如前所述,我使用了其他格式,不仅仅是.ToLongDateStr

我正在编写一个查询,以便在不同数据库中的两个MS Access表之间传输数据。事情的转移方面是好的。然而,我在设置“到/从日期”时遇到了实际问题

我的电脑是为英国安装的,但我相信MS-SQL查询会将查询转换为我们。你可以想象,某些日期,如2013年11月1日或2013年11月1日,会给我带来不正确的结果

我一直在尝试不同的事情,但结果却很奇怪,所以我需要一些指导,告诉大家应该怎么做。以下是当前查询的示例以及在运行期间创建的选择零件。如前所述,我使用了其他格式,不仅仅是.ToLongDateString:

cmd.CommandText = @"INSERT INTO [Report data] IN '" + Directory.GetCurrentDirectory() + "\\Reporting.mdb" + "' SELECT tblMain.* FROM tblMain WHERE [Start Date-Time] Between #" + monthCalendar1.SelectionStart.ToLongDateString() + " 00:00:00# AND #" + monthCalendar2.SelectionStart.ToLongDateString() + " 23:59:59#;";

"SELECT tblMain.* FROM tblMain WHERE [Start Date-Time] Between #01 November 2013 00:00:00# AND #01 November 2013 23:59:59#;"

非常感谢您提供的任何帮助。

使用参数化查询不仅可以保护您的代码免受SQL注入漏洞的影响,而且还可以减轻您在定界值和担心区域设置问题(即“US”和“UK”查询)时的负担。帮自己一个忙,将代码转换为类似以下内容:

cmd.CommandText =
    "SELECT MemberID, DonationDate FROM MemberDonations " +
    "WHERE DonationDate Between ? And ?";
cmd.Parameters.AddWithValue("?", new DateTime(2013, 1, 2));
cmd.Parameters.AddWithValue("?", new DateTime(2013, 1, 3));

请使用。。这种字符串连接对SQL注入攻击是开放的。谢谢Gord-非常感谢。