错误插入一条记录到的MS Access

问题描述:

当我有VAL MyDate在我的C#程序包含今天最新错误插入一条记录到的MS Access

我有日期字段,我获得2007 - TdateOpen

我尝试插入到数据库这样的:

SQL = "insert into MyCount(TdateOpen) values ('" + MyDate +"')"; 

,我得到这个错误:

Data type mismatch in criteria expression 

什么都可以是问题吗?

+0

我不知道你怎么能有一个DateTime变量,其值在C#空。 – 2010-09-16 05:54:21

+0

这样我可以..... public DateTime? MyDate {get;组; } – Gold 2010-09-16 05:58:16

因为您在SQL语句中输入日期为String。而不是字符串它应该是日期/日期格式。 尝试用#环绕。

+0

还有一个问题是null不能有分隔符。 – Fionnuala 2010-09-16 09:38:50

您需要确保日期为美国订单(mm/dd/yyyy)或ANSI/ISO订单,无论您使用的是短划线还是斜线并不重要,ANSI/ISO都是首选。

然后,如Madhu CM所说,Access中日期的分隔符是散列(#),但是,您的日期可以为null,null也不能分隔,所以您必须将分隔符添加到日期字符串中,如果返回一个日期,或者使用两个sql语句,一个用于null和一个用于日期。

+0

要求不是美国订单或ANSI/ISO订单,而是美国订单或明确的格式。 ISO格式曾经是这种明确的格式。 – 2010-09-17 00:10:47

您可以使用SQL参数而不是将日期值动态嵌入到语句中。

SQL = "insert into MyCount(TdateOpen) values (?)"; 
var parameter = yourCommand.CreateParameter(); 
parameter.Value = yourDateTime; 
yourCommand.Parameters.Add(parameter); 

(声明:该代码编译时不也测试过,但它应该给你一个提示)