对了,事务是以connection 为基础的,当你new SqlConnection时又新开一个tranSaction ,所以不回滚.这样写就行了
  using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                connection.Open();                using (SqlTransaction transaction = connection.BeginTransaction())
                {
                    try
                    {
                     }
                 }
               }