C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。

来源:互联网 发布:怎么用软件解三键 编辑:程序博客网 时间:2024/05/19 23:11

C#使用OleDB操作ACCESS插入数据时提示:标准表达式中数据类型不匹配。

OleDbParameter param = new OleDbParameter("" + dc.ColumnName, dc.DataType);                    param.IsNullable = dc.AllowDBNull;                    if (dr_src.Table.Columns.Contains(dc.ColumnName))                    {                        if (!(dr_src[dc.ColumnName] is System.DBNull))                        {                            if (dc.DataType.FullName.Equals("System.DateTime"))                            {                                param.Value = dr_src[dc.ColumnName].ToString();                            }                            else                            {                                param.Value = dr_src[dc.ColumnName];                            }                        }                        else                        {                            param.Value = dc.DefaultValue;                            if (dc.DataType.FullName.Equals("System.Decimal"))                            {                                param.Value = System.Decimal.Zero;                            }                            if (dc.DataType.FullName.Equals("System.String"))                            {                                param.Value = String.Empty;                            }                        }                    }                    else                    {                        param.Value = dc.DefaultValue;                    }

导致该问题的罪魁祸首为 System.DateTime 类型的字段

if (dc.DataType.FullName.Equals("System.DateTime"))                            {                                param.Value = dr_src[dc.ColumnName].ToString();                            }

在线该类型的Parameter赋值时,不能传递 System.DateTime 类型,而是需要传递 String 类型。

1 0
原创粉丝点击