• 关于DataSet 、 DataTable 、 ArrayList 、 IList 、Array


    收集一些关于几个类型的知识点:

    一.关系

    IList   il=new   ArrayList();    

    IList是一个接口,AarrayList继承这个接口,il是一个ArrayList类型的对象

     

    C#中实例变量定义的格式是   
      静态类型   变量名=实例;   
      如果静态类型是类,实例可以是静态类型本身的实例对象;也可以是其子类的实例对象   
      如果静态类型是接口,实例可以是其实现类的实例或其子接口实现类的实例   
        
      IList   il=new   ArrayList();   
      是第二种情况
     

    二.性能

    显示数据时,通常以上几个对象作为载体,具体哪种方式性能比较好呢,已有人提供测试的方式,这里只引用

    其测试结果。

    TypedDataTable < DataTable < ArrayList < IList < Array

    TypedDatatTable比DataTalbe花的时间将近几倍

    ArrayList比IList慢,是因为需要转型

    在长度确定的情况下Array比IList要快。

    ArrayList、IList、Array在性能上相差无几,综合以上,建议采取IList。

     

    if (!IsPostBack)
                {
    
                    /********************************************************************************
                    declare @i int  --变义变量@i
                            set @i = 10 --初始化@i为1
                            while @i < 100000000 --如果@i小于100,这里改成100万即是插入100万条记录
                            begin ------------------
                                     insert into price (name, ProvinceID) values('美称朝鲜同意将1.2万枚核燃料棒出售运往国外
                    美称朝鲜同意将1.2万枚核燃料棒出售运往国外
                    美称朝鲜同意将1.2万枚核燃料棒出售运往国外
                    美称朝鲜同意将1.2万枚核燃料棒出售运往国外
                    美称朝鲜同意将1.2万枚核燃料棒出售运往国外
                    美称朝鲜同意将1.2万枚核燃料棒出售运往国外
                    ' , 1)
                                     set @i = @i + 1
                            end --------------------
            
                            SET NOCOUNT on
    
    
                    /********************************************************************************
                    /************* 清除数据缓存 ****************/
                    Response.Buffer = true;
                    Response.Expires = 0;
                    Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
                    Response.AddHeader("pragma", "no-cache");
                    Response.AddHeader("cache-control", "private");
                    Response.CacheControl = "no-cache";
    
                    
    
    
                    int i = 0;   
                    SqlConnection cn = new SqlConnection(DAL.DBHelper.ConnectionString);
                    SqlCommand cm = new SqlCommand("select * from test", cn);
                    cn.Open();
                    SqlDataReader rdr = cm.ExecuteReader();
                    while (rdr.Read())
                    {
                        i++;
                    }
                    rdr.Close();
                    cn.Close();
                    SqlDataAdapter ada = null;
                    Response.Write("开始....<br><table  border=\"1\" cellpadding=\"2\" cellspacing=\"1\">");
                    DateTime start;
                    DateTime end;
    
                    TimeSpan[] TS = new TimeSpan[5];
                    //for (int counter = 1; counter <= 100; counter++)
                    //{
                        start = DateTime.Now;
                        for (int smallCounter = 1; smallCounter <= 1; smallCounter++)
                        {
                            ada = new SqlDataAdapter("select * from test", cn);
                            DataSet ds = new DataSet();
                            cn.Open();
                            ada.Fill(ds);
                            cn.Close();
                        }
                        end = DateTime.Now;
                        TS[0] += end - start;
                        Response.Write("<tr style='height:20px;'><td>DataSet:</td><td style='100px;'>" + Convert.ToString(end - start) + "</td></tr>");
    
                        start = DateTime.Now;
                        for (int smallCounter = 1; smallCounter <= 1; smallCounter++)
                        {
                            cm = new SqlCommand("select * from test", cn);
                            IList<DAL.Tts_Hotel_Price> MyList = new List<DAL.Tts_Hotel_Price>();
                            cn.Open();
                            rdr = cm.ExecuteReader();
                            while (rdr.Read())
                            {
                                //new DAL.Tts_Hotel_Price(rdr.GetInt64(0), rdr.GetInt64(1), rdr.GetString(2))
                                MyList.Add(new DAL.Tts_Hotel_Price());
                            }
                            rdr.Close();
                            cn.Close();
                        }
                        end = DateTime.Now;
                        TS[1] += end - start;
                        Response.Write("<tr><td>IList:</td><td>" + Convert.ToString(end - start) + "</td></tr>");
    
                        start = DateTime.Now;
                        for (int smallCounter = 1; smallCounter <= 1; smallCounter++)
                        {
                            cm = new SqlCommand("select * from test", cn);
                            ArrayList MyAl = new ArrayList();
                            cn.Open();
                            rdr = cm.ExecuteReader();
                            while (rdr.Read())
                            {
                                //new DAL.Tts_Hotel_Price(rdr.GetInt64(0), rdr.GetInt64(1), rdr.GetString(2))
                                MyAl.Add(rdr);
                            }
                            rdr.Close();
                            cn.Close();
                        }
                        end = DateTime.Now;
                        TS[2] += end - start;
                        Response.Write("<tr><td>ArrayList:</td><td>" + Convert.ToString(end - start) + "</td></tr>");
    
                        start = DateTime.Now;
                        for (int smallCounter = 1; smallCounter <= 1; smallCounter++)
                        {
                            cm = new SqlCommand("select * from test", cn);
                            DAL.Tts_Hotel_Price[] MyArray = new DAL.Tts_Hotel_Price[200800];
                            cn.Open();
                            int flag = 0;
                            rdr = cm.ExecuteReader();
                            while (rdr.Read())
                            {
                                MyArray[flag] = new DAL.Tts_Hotel_Price(); // new DAL.Tts_Hotel_Price(rdr.GetInt64(0), rdr.GetInt64(1), rdr.GetString(2));
                                flag++;
                            }
                            rdr.Close();
                            cn.Close();
                        }
                        end = DateTime.Now;
                        TS[3] += end - start;
                        Response.Write("<tr><td>[]:</td><td>" + Convert.ToString(end - start) + "</td></tr>");
    
                        start = DateTime.Now;
                        for (int smallCounter = 1; smallCounter <= 1; smallCounter++)
                        {
                            ada = new SqlDataAdapter("select * from test", cn);
                            DataTable aTable = new DataTable();
                            cn.Open();
                            ada.Fill(aTable);
                            cn.Close();
                        }
                        end = DateTime.Now;
                        TS[4] += end - start;
                        Response.Write("<tr><td>DataTable:</td><td>" + Convert.ToString(end - start) + "</td></tr>");
    
    
    
                        Response.Write("</table><br>结束............");
                    //foreach (TimeSpan ts in TS)
                    //{
                    //    Response.Write("<br>" + ts );
                    //}               
                }

     

     

  • 相关阅读:
    Cron表达式说明
    exe4j 使用记录(二):jar打包exe
    exe4j 使用记录(一):下载、安装及注册
    Sublime Text3添加右键
    jenkins 入门教程
    Visual Studio设置字体及护眼背景色
    Visual Studio 设置C#语言代码格式
    Visual Studio 常用快捷键
    Maven中使用本地JAR包
    oracle 查看锁表及解锁的语句
  • 原文地址:https://www.cnblogs.com/Fooo/p/2818471.html
Copyright © 2020-2023  润新知