C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。
OleDbParameter param = new OleDbParameter(“” + dc.ColumnName, dc.DataType);param.IsNullable = dc.AllowDBNull;if (dr_src(dc.ColumnName)){if (!(dr_src[dc.ColumnName] is System.DBNull)){if (dc(“System.DateTime”)){param.Value = dr_src[dc.ColumnName].ToString();}else{param.Value = dr_src[dc.ColumnName];}}else{param.Value = dc.DefaultValue;if (dc(“System.Decimal”)){param}if (dc(“System.String”)){param.Value = String.Empty;}}}else{param.Value = dc.DefaultValue;}
导致该问题的罪魁祸首为 System.DateTime 类型的字段
if (dc(“System.DateTime”)){param.Value = dr_src[dc.ColumnName].ToString();}
在线该类型的Parameter赋值时,不能传递 System.DateTime 类型,而是需要传递 String 类型。
,路遥知马力,日久见人心。