桦山涧

桦山涧
Asp.net ---->知识改变命运!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于ArrayList 类

Posted on 2007-04-27 10:47  桦林  阅读(734)  评论(0编辑  收藏
在以下的一个方法中涉及到了ArrayList 类的参数
  /// <summary>
  /// 执行多条SQL语句,实现数据库事务。
  /// </summary>
  /// <param name="SQLStringList">多条SQL语句</param>  
  public static void ExecuteSqlTran(ArrayList SQLStringList)//使用大小可按需求自动增加的数组来加载参数
  {
   using (SqlConnection conn = new SqlConnection(connectionString))
   {
    conn.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.Connection=conn;    
    SqlTransaction tx=conn.BeginTransaction();//以指定的隔离级别和事务名称开始数据库事务   
    cmd.Transaction=tx;//为将要执行的SqlCommand对象获取或者设置SqlTransaction (Transact-SQL事务)  
    try
    {     
     for(int n=0;n<SQLStringList.Count;n++)
     {
      string strsql=SQLStringList[n].ToString();
      if (strsql.Trim().Length>1)
      {
       cmd.CommandText=strsql;
       cmd.ExecuteNonQuery();//遍历以执行动态数组中的sql语句
      }
     }          
     tx.Commit();//提交数据库事务     
    }
    catch(System.Data.SqlClient.SqlException E)
    {  
     tx.Rollback();//从挂起状态回滚事务,并指定事务或者保存点名称
     throw new Exception(E.Message);
    }
   }
  }

ArrayList 类和Array类的区别

ArrayList是数组类的复杂版本。ArrayList类提供在大多数Collections类中提供但不在Array类中提供的一些功能。
主要有以下几点:
 
1》Array位于system命名空间中,而ArrayList位于system.collections命名空间中。
2》Array的容量是固定的,而ArrayList的容量是根据需要自动扩展的。如果更改了arraylist.capacity属性的值,则自动进行内存重新分配额元素复制。
3》ArrayList提供添加,插入或移除某一范围元素的方法。在Array中,只能一次获取或设置一个元素的值。
4》使用Synchronized方法可以很容易地创建arraylist的同步版本。而array将一直保持它直到用户实现同步为止。
5》ArrayList提供将只读和固定大小包装返回到集合的方法,而array不提供。
6》另一方面,array提供arraylist所不具有的某些灵活性。
7》可以设置array的下限,但arraylist的下限始终为零。
8》array可以具有多个维度,而arraylist始终只是一维的
9》特定类型的array具有比arraylist更好的性能,则是因为arraylist的元素属于object类型,所以在存储或检索值类型时通常发生装箱和取消装箱