日期:2014-05-20  浏览次数:20867 次

请看一下哪里出错了?
string constr="provider=microsoft.Jet.OleDb.4.0;Data Source=supermarket.mdb",price;
string str_price="select Goods_price from store where Goods_id= '"+tb_id.Text+"'";
  string str=" begin transaction update store set Goods_quality=Goods_quality -'"+
Convert.ToInt32(tb_quality.Text)+"' where Goods_id='"
+tb_id.Text+
  "' insert into buy(buy_goods_id,Goods_quality,Goods_by_per_id,Goods_time) values('"+tb_id.Text+"','"
+tb_quality.Text+"','"+work_personid.Text+"''"
+DateTime.Now.ToShortDateString()+"') commit transaction";
   
try
{
OleDbDataAdapter dap=new OleDbDataAdapter(str_price,constr); 
System.Data.DataSet ds=new System.Data.DataSet();
OleDbConnection conn=new OleDbConnection(constr);
System.Data.OleDb.OleDbCommand cmd;
conn.Open();
cmd=new OleDbCommand(str,conn);
cmd.ExecuteNonQuery();
//////////////////价格计算
dap.Fill(ds,"price"); 
price=ds.Tables["price"].Rows[0][0].ToString().Trim();//查询得到的单价


lab_price.Text="单价:"+price+" 总价是:"+Convert.ToString(Convert.ToInt32(tb_quality.Text)*float.Parse(price))+"元";
conn.Close();
}
catch(Exception f)
{
  MessageBox.Show(f.Message);
}


f.Message提示:
IErrorInfo.GetDescription因E_FAIL(8x0004005)而失败

------解决方案--------------------
Sql和Oracle的研究得多,OleDb还没用过。
但是楼主您用来创建命令对象的CommandText字符串把我弄昏了。
还有我不知道一串字符串相+,中间为什么会出现Convert.ToInt32(tb_quality.Text)这个东东?
------解决方案--------------------
建议你不要用这个方式来处理事务,使用连接对象来管理事务更清晰一些。
------解决方案--------------------
我怎么回复老出错呢?
建议你不要用这种方式来管理事务,使用连接对象来管理事务更清晰一些。