怎么设置decimal的小数位数,在parameters里面

zhongxin 2003-05-15 04:46:36
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里面,谢了
...全文
414 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuzi98 2003-05-15
  • 打赏
  • 举报
回复
提供一个简单方法,你试试行不行
com.Parameters["@ordernum"].Value=ds.Tables["OrderDetail"].Rows[i]["OrderNum"].ToString();//都转化成string类型。
imfine 2003-05-15
  • 打赏
  • 举报
回复
com.Parameters["@total"].Value=Convert.ToDecimal(ds.Tables["OrderDetail"].Rows[i]["Total"]);

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧