怎么设置decimal的小数位数,在parameters里面
try
{
conn.Open();
OleDbCommand com=new OleDbCommand("insert into OrderDetail values(?,?,?,?,?,?)",conn);
tr=conn.BeginTransaction();
com.Transaction=tr;
addOrderForm(Convert.ToInt64(ds.Tables["OrderDetail"].Rows[0]["OrderNum"]));
com.Parameters.Add("@ordernum",OleDbType.BigInt);
com.Parameters.Add("@unitprice",OleDbType.Decimal,14);
com.Parameters.Add("@cname",OleDbType.VarChar,50);
com.Parameters.Add("@amount",OleDbType.BigInt);
com.Parameters.Add("@total",OleDbType.Decimal,14);
com.Parameters.Add("@barcode",OleDbType.VarChar,50);
com.Prepare();
for(int i=0;i<ds.Tables["OrderDetail"].Rows.Count;i++)
{
com.Parameters["@ordernum"].Value=ds.Tables["OrderDetail"].Rows[i]["OrderNum"];
com.Parameters["@unitprice"].Value=ds.Tables["OrderDetail"].Rows[i]["UnitPrice"];
com.Parameters["@cname"].Value=ds.Tables["OrderDetail"].Rows[i]["CName"];
com.Parameters["@amount"].Value=ds.Tables["OrderDetail"].Rows[i]["Amount"];
com.Parameters["@total"].Value=ds.Tables["OrderDetail"].Rows[i]["Total"];
com.Parameters["@barcode"].Value=ds.Tables["OrderDetail"].Rows[i]["Barcode"];
com.ExecuteNonQuery();
}
产生的异常是
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.InvalidOperationException: OleDbCommand.Prepare 方法要求“14”类型的参数具有显式设置的“精度”和“小数位数”。 at System.Data.OleDb.OleDbParameter.Prepare(OleDbCommand cmd) at System.Data.OleDb.OleDbCommand.PrepareCommandText(Int32 expectedExecutionCount) at System.Data.OleDb.OleDbCommand.Prepare() at SubPlatformWebService.Admin.OrderDetailAdmin.addComInOrder(DataSet ds) in f:\coins.net\subplatformwebservice\admin\orderdetailadmin.cs:line 201 at SubPlatformWebService.commodityoper.AddComInOrderForm(DataSet ds) in f:\coins.net\subplatformwebservice\commodityoper.asmx.cs:line 279 --- 内部异常堆栈跟踪的结尾 ---
怎么设置那个decimal格式的小数点位数呢,在parameters里面,谢了