错误插入一条记录到的MS Access
当我有VAL MyDate
在我的C#程序包含今天最新或空。错误插入一条记录到的MS Access
我有日期字段,我获得2007 - TdateOpen
我尝试插入到数据库这样的:
SQL = "insert into MyCount(TdateOpen) values ('" + MyDate +"')";
,我得到这个错误:
Data type mismatch in criteria expression
什么都可以是问题吗?
因为您在SQL语句中输入日期为String。而不是字符串它应该是日期/日期格式。 尝试用#环绕。
还有一个问题是null不能有分隔符。 – Fionnuala 2010-09-16 09:38:50
您需要确保日期为美国订单(mm/dd/yyyy)或ANSI/ISO订单,无论您使用的是短划线还是斜线并不重要,ANSI/ISO都是首选。
然后,如Madhu CM所说,Access中日期的分隔符是散列(#),但是,您的日期可以为null,null也不能分隔,所以您必须将分隔符添加到日期字符串中,如果返回一个日期,或者使用两个sql语句,一个用于null和一个用于日期。
要求不是美国订单或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);
(声明:该代码编译时不也测试过,但它应该给你一个提示)
我不知道你怎么能有一个DateTime变量,其值在C#空。 – 2010-09-16 05:54:21
这样我可以..... public DateTime? MyDate {get;组; } – Gold 2010-09-16 05:58:16