如何将c#十进制输出到OLEDB十进制(28,9)字段

如何将c#十进制输出到OLEDB十进制(28,9)字段,c#,oledb,decimal,C#,Oledb,Decimal,我正在使用Microsoft.ACE.OLEDB.12.0接近access 2007数据库。它包含一个表 使用创建 CREATE TABLE reccs(decimalField decimal(28,9)) 它必须有这样的精度和比例。我正在使用添加一行 string s = "INSERT INTO [reccs]([minQuantity]) VALUES(@minQuantity)"; object o = ...; oleDbCommand = new OleDbCommand(s,

我正在使用Microsoft.ACE.OLEDB.12.0接近access 2007数据库。它包含一个表 使用创建

CREATE TABLE reccs(decimalField decimal(28,9))
它必须有这样的精度和比例。我正在使用添加一行

string s = "INSERT INTO [reccs]([minQuantity]) VALUES(@minQuantity)";
object o = ...;
oleDbCommand = new OleDbCommand(s, conn);
OleDbParameter param = new OleDbParameter("minQuantity", o);
oleDbCommand.Parameters.Add(param).Value = o;
oleDbCommand.ExecuteNonQuery(); 
有时(取决于o中的精确小数点),这会引发System.Data.OleDb.OLEDBEException:小数字段的精度太小,无法接受您尝试添加的数字。我读
关于调整c#中的十进制精度,但解决这样的问题让人感觉很不舒服,我不确定它是否能保证不会抛出异常。还有更好的建议吗

您是否尝试过将值作为字符串传递?尝试让Access解析字符串数据,您可能会得到更好的结果。这是可行的,但我不明白为什么。并且:在以这种方式将double/int/long值传递给access时,是否应该使用相同的方法?