你是要用事务吗?何必那末麻烦?
public void Trans(string[] sStr,out Exception err)
{
err=null;
string strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
Server.MapPath(".")+"..\\..\\data\\db1.mdb";
OleDbConnection conn=new OleDbConnection(strconn);
OleDbCommand MyCommand=new OleDbCommand("",conn);
//MyCommand.Connection=conn;
if(conn.State.ToString()=="Closed")
{
conn.Open();
}
OleDbTransaction MyTrans;
MyTrans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
MyCommand.Transaction = MyTrans;
try
{
foreach(string s in sStr)
{
if(s!="")
{
MyCommand.CommandText=s;
MyCommand.ExecuteNonQuery();
}
}
MyTrans.Commit();
}
catch(Exception e)
{
err=e;
try{MyTrans.Rollback();}
catch{}

}
finally
{
conn.Close();
}
}

解决方案 »

  1.   

    RadishRabbitGao() ( )关闭需要时间是什么意思?
    ppp80() ( ) 我是想用我封装的类实现事务
    谁能把握写的那个分析一下,看有什么问题
      

  2.   

    记住一点就可以了用完Connection以后就关闭,这样就没有问题。
    但是,如果你使用基于连接的事务那么可能会有于事务失败或者事务回滚等操作导致某个Connection一直处于打开状态。所以我想如果要设计出来一个完整的数据库访问类是一件不容易的事情。希望的看法对你有所帮助!