如何将事务执行情况写入数据库中??
如下代码中,在try中,每一名sql语句执行成功都会在日记表中插入一行记录,如果有任何一句sql语句失败的话,则所有语句都会回滚,问题是插入的日志也会被回滚掉,怎样才能使日志不被回滚呢?   
 SqlConnection   conn   =   new   SqlConnection(connectionstring) 
 conn.Open(); 
 SqlTransaction   tran   =   conn.BeginTransaction();   
 try 
 { 
          SqlHelper.ExecSql(tran,   sql1); 
          WriteNote( "sql1执行成功 "); 
          SqlHelper.ExecSql(tran,   sql2); 
          WriteNote( "sql2执行成功 ");          
          SqlHelper.ExecSql(tran,   sql3); 
          WriteNote( "sql3执行成功 ");          
          SqlHelper.ExecSql(tran,   sql4); 
          WriteNote( "sql4执行成功 ");            
          tran.Commit(); 
 } 
 catch 
 { 
          tran.Rollback(); 
 }   
 function   void   WriteNote(string   txt) 
 { 
             string   sql   =    "insert   into   Note   (txt)   values   ( "   +   txt   +    ") "; 
             ...... 
 }
------解决方案--------------------把日志写入文件中,就不会了
------解决方案--------------------SqlConnection conn = new SqlConnection(connectionstring) 
 conn.Open(); 
 SqlTransaction tran = conn.BeginTransaction(); 
 string[] msg = new { " ", " ", " ", " "}; 
 try 
 {      
    SqlHelper.ExecSql(tran, sql1); 
    msg[0] =  "sql1执行成功 "; 
    SqlHelper.ExecSql(tran, sql2); 
    msg[1] =  "sql2执行成功 ";    
    SqlHelper.ExecSql(tran, sql3); 
    msg[2] =  "sql3执行成功 ";    
    SqlHelper.ExecSql(tran, sql4); 
    msg[4] =  "sql4执行成功 ";   
    tran.Commit(); 
 } 
 catch 
 { 
    tran.Rollback(); 
 } 
 finally 
 { 
 	//--这个方法有个问题 不能确保消息插入一定成功.  	 
 	for(int ix=0; ix <msg.Length; ix++) 
 	{ 
 		if(msg[ix] !=  " ") 
 		{ 
 			string sql =  "insert into Note (txt) values ( " + msg[ix] +  ") "; 
 			SqlHelper.ExecSql(conn, sql); 
 		} 
 	}   
 	conn.Close(); 
 }
------解决方案--------------------日志 用另外的 连接插入
------解决方案--------------------使用不同的连接即可,只要写入日志的连接和数据操作的连接不是一个连接,数据操作的连接中的事务即使回滚,也不影响日志使用的连接。
------解决方案--------------------是的,事务用的连接与日志用的连接不是同一个连接就不会影响。
------解决方案--------------------最好是用一个文件保存