ADO.NET事务上处理的问题!!等救命!!!!
public bool AddOrderData(ref string TableName,string[] Values,ListView.ListViewItemCollection _Items)
{
OleDbCommand _Command=new OleDbCommand();
OleDbTransaction myTrans;
string _Key;
string SQLString="select ID,OrderDate,UnitPrice,OrderCash from TempOrder where id< 0";
DataSet _DataSet=new DataSet();
try
{
_Connection.Open();
//事务开始
myTrans=_Connection.BeginTransaction();
try
{
OleDbDataAdapter _DataAdapter=new OleDbDataAdapter(new OleDbCommand(SQLString,_Connection,myTrans));
_DataAdapter.RowUpdated+= new OleDbRowUpdatedEventHandler(OnRowUpdated);
_DataAdapter.InsertCommand=new OleDbCommand("Insert Into TempOrder(OrderDate,UnitPrice,OrderCash) values(?,?,?)",_Connectio); _DataAdapter.InsertCommand.Parameters.Add("@OrderData",OleDbType.Date,0,"OrderDate");
_DataAdapter.InsertCommand.Parameters.Add("@UnitPrice",OleDbType.Currency,0,"UnitPrice");
_DataAdapter.InsertCommand.Parameters.Add("@OrderCash",OleDbType.Currency,0,"OrderCash");
_DataAdapter.InsertCommand.Transaction=myTrans;
_DataAdapter.Fill(_DataSet,"TempOrder");
DataRow _Row=_DataSet.Tables["TempOrder"].NewRow();
_Row["OrderDate"]=DateTime.Parse(Values[0]);
_Row["UnitPrice"]=Int32.Parse(Values[1]);
_Row["OrderCash"]=Int32.Parse(Values[2]);
_DataSet.Tables["TempOrder"].Rows.Add(_Row);
_DataAdapter.Update(_DataSet,"TempOrder");
_Key=_Row["ID"].ToString();
string TempFields="ID,ComputerNO,StartDate,StartTime";
_Command.Transaction=myTrans;
foreach(ListViewItem tempItem in _Items)
{
SQLString="Inser Into TempOrderComputer(" + TempFields+") Values(";
SQLString+=_Key+","+tempItem.Text+",'"+tempItem.SubItems[1]+"','"+tempItem.SubItems[1]+"')";
_Command.Connection=_Connection;
_Command.CommandText=SQLString;
_Command.ExecuteNonQuery(); }
myTrans.Commit();
}
catch(Exception e_)
{
myTrans.Rollback();
TableName=e_.Message;
return false;
}
/事务结束
_Connection.Close();
}
catch(Exception e_)
{
TableName=e_.Message;
Return false;
}
return true;
}
以上代码在执行到_DataAdaPater.update()时错误
“命令必须具有事务对象才能执行,Transaction属性尚未初始化。”
但是我在InsertCommand中设了事务对像,请大家帮下忙!!!!
我用CommandBuilder也不可以,事务设好了,就是说我没有初始化。
不知是不是我做错了,请帮忙解决一下!!等救命。。。