MS Access - 小数列和映射到 .NET 小数值会导致“条件表达式中的数据类型不匹配”
我正在尝试将 .NET 十进制值数据插入 MS Access 列“十进制”
MS Access 列被定义为数字小数 - 精度 18 标度 2
OleDbParameter 是这样创建的:
var p3 = new OleDbParameter();
p3.DbType = System.Data.DbType.Decimal;
p3.Value = 10.12m;
p3.Precision = 18;
p3.Scale = 2;
执行命令后,我收到“条件表达式中的数据类型不匹配”例外。
我做错了什么?
MS Access 是 2007 年,但数据库是旧文件格式 *.mdb。
I'm trying to insert .NET decimal value data into MS Access column 'decimal'
MS Access column is defined as number decimal - precision 18 scale 2
OleDbParameter is created this way:
var p3 = new OleDbParameter();
p3.DbType = System.Data.DbType.Decimal;
p3.Value = 10.12m;
p3.Precision = 18;
p3.Scale = 2;
After executing command I receive "Data type mismatch in criteria expression" exception.
What am I doing wrong?
MS Access is 2007 but the dababase is in old file format *.mdb.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议在您的值中添加一个 m 。在 C# 中,m 指定十进制值而不是双精度值。
I would suggest adding an m to your value. In C# m specifies a decimal value instead of a double.
尝试仅设置该值,看看它是否接受它:
或者尝试将该值设置为整数。我的猜测是问题出在
OleDbParameter
或System.Data.DbType.Decimal
try just setting the value and see if it takes it:
or try setting the value to a whole number. My guess is the problem's with either
OleDbParameter
orSystem.Data.DbType.Decimal