日期:2014-05-18  浏览次数:20514 次

|M| 第二贴: ASP.NET 里面进行大批量的数据进行添加的时候要用什么办法啊 急
原贴:
http://community.csdn.net/Expert/topic/5702/5702045.xml?temp=.3242151
现在我知道用回滚事物的办法
但要是做成一个类要怎么来做了本来我的是这样的
执行类
public   Execute(sql)
{
    ...
    cmd.CommandText   =   sql;    
    cmd.ExecuteNonQuery();
}

btn_OnClick()
{
    for(int   i   =   0;   i   <=   ddluser.Items.Count   -   1;   i++)
    {
            Execute( "insert   .... ")
    }
}
                               
但是这样要做成有那个整个回滚的话这些类就不知道要怎么来写才方便调用了
大家看一下要怎么写才能实现回滚和我上面这样的调用方法
谢谢



------解决方案--------------------
多条SQL语句并发执行
------解决方案--------------------
修改你的类的方法,加上connection和transactoin参数
------解决方案--------------------
和刚才的代码没什么区别..

------解决方案--------------------
try ->

...btn_OnClick(...
{
Execute();
}


private void Execute()
{
// string connString = ...
using(SqlConnection conn = new SqlConnection(connString)) {
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
try {
for(int i = 0; i <= ddluser.Items.Count - 1; i++)
{
string sql;
// build the sql
// ...
ExecuteInteral(trans, sql);
}
trans.Commit();
}catch(Exception ex){
trans.RollBack();
throw ex;
}
}
}

private void ExecuteInteral(SqlDbTranaction trans, sql)
{
cmd.Transaction = trans;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}