向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法...

本文介绍了一个在使用C#向Access数据库插入包含日期字段的数据时遇到的问题及解决方案。具体表现为“标准表达式中数据类型不匹配”的错误,原因是C#中的日期类型与Access中的日期类型不一致。文章提供了修改参数设置来规避这一问题的方法。

在使用下面的代码向Access数据库中添加数据的时候,如果是日期字段,则会出现“标准表达式中数据类型不匹配。”的错误,这可能是C#中的日期类型无法直接转换成Access中的日期类型OleDbType.DBDate所致:string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MengXianHui.mdb;Persist Security Info=True"; string QueryString = "Insert Into [Document] (Title, Content, Author, CreateDate) Values(@Title, @Content, @Author, @CreateDate)"; OleDbConnection cn = new OleDbConnection(ConnectionString); cn.Open(); OleDbCommand cmd = new OleDbCommand(QueryString, cn); cmd.Parameters.AddWithValue("@Title", Title); cmd.Parameters.AddWithValue("@Content", Content); cmd.Parameters.AddWithValue("@Author", Author); cmd.Parameters.AddWithValue("@CreateDate", DateTime.Now); cmd.ExecuteNonQuery(); cn.Close(); cn.Dispose();

解决办法就是将上面语句中的 cmd.Parameters.AddWithValue("@CreateDate", DateTime.Now); 转换成下面的语句即可:

OleDbParameter parameter = new OleDbParameter(); parameter.OleDbType = OleDbType.DBDate; parameter.Value = DateTime.Now; cmd.Parameters.Add(parameter);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值