原:http://topic.csdn.net/u/20090624/13/1a4e14cc-d24e-4fd9-b033-562b14b288a5.html?326019123        String lastcph = "";
        SqlConnection myConnection = new SqlConnection(EDb.CnnString);
        myConnection.Open();
        // 启动一个事务
        SqlTransaction myTrans = myConnection.BeginTransaction();
        // 为事务创建一个命令
        SqlCommand myCommand = new SqlCommand();
        myCommand.Connection = myConnection;
        myCommand.Transaction = myTrans;
        try
        {
           ... //这里进行了一些数据库操作
           ...
           //myTrans.Commit();这里把事务提交屏避了
          
        }
        catch (Exception Ex)
        {
            //myTrans.Rollback();这里把事务回滚屏避了
        }
        finally
        {
            myTrans.Dispose();
            myConnection.Close();
            myConnection.Dispose();
           //清除事务,并清除数据链接
        }
大家的意见:
1
这个事务会一直占住线程不放。 
并且对应的对数据库的表的操作,也会牢牢的锁住表。 
从而导致别的操作超时。
2
以下摘自MSDN: 
Call the Commit method of the SqlTransaction object to complete the transaction, or call the Rollback method to abort the transaction. If the connection is closed or disposed before either the Commit or Rollback methods have been executed, the transaction is rolled back. 
http://msdn.microsoft.com/zh-cn/netframework/2k2hy99x(en-us,VS.85).aspx 
链接关闭后事务会自动回滚
3
lz所进行的事务的语句获取的相关锁的级别和性质了,原来的事务没有提交就会一直占用资源执行的,比如你update一条明确的记录,这时根据你的隔离级别不同,这条记录有可能能被访问,有可能不能被访问
----------------------------------------------------------------
RE:
1我想应当不会,因为2里面已经说了,链接关闭的时候会自动回滚事物
3里面说的会出现我没回滚前记录可能被访问,我用的是事物默认级别,我当能不想我没有提交而别人能访问我Insert进去的记录,这里会出现这个情况吗我上面分析的对不对,大家帮看一下
谢谢