zoukankan      html  css  js  c++  java
  • ADO.NET 2.0 Dataset和Datatable 新功能新特性

    ADO.NET 2.0 Dataset和Datatable 新功能新特性

    1.新的索引引擎更快的执行效率
       下面这段代码在2003中需要157秒,在2005中只要11秒就可以完成:

    DataSet ds = new DataSet();

    ds.Tables.Add(
    "BigTable");
    ds.Tables[
    0].Columns.Add("ID", Type.GetType("System.Int32"));
    ds.Tables[
    0].Columns["ID"].Unique = true;
    ds.Tables[
    0].Columns.Add("Value", Type.GetType("System.Int32"));

    Cursor.Current 
    = Cursors.WaitCursor;

    DateTime datBegin 
    = DateTime.Now;

    Random rand 
    = new Random();
    int i, intValue;
    DataRow dr;

    for (i = 1; i <= 500000; i++)
    {
        
    try
        
    {
            intValue 
    = rand.Next();

            dr 
    = ds.Tables[0].NewRow();

            dr[
    "ID"= intValue;
            dr[
    "Value"= intValue;

            ds.Tables[
    0].Rows.Add(dr);
        }

        
    catch { }
    }


    Cursor.Current 
    = Cursors.Default;

    MessageBox.Show(
    "Elapsed Time: " + (DateTime.Now - datBegin).Seconds.ToString());
    MessageBox.Show(
    "count = " + ds.Tables[0].Rows.Count.ToString());

    2.Dataset可以序列化为二进制文件

    string connstr = "server=(local);database=northwind;integrated security=true;async=true";
    DataSet ds 
    = new DataSet();
    SqlDataAdapter dadpt 
    = new SqlDataAdapter("select * from [order details]", connstr);
    dadpt.Fill(ds);

    BinaryFormatter bf 
    = new BinaryFormatter();
    FileStream fs 
    = new FileStream(@"c:\xml1.txt",FileMode.OpenOrCreate);

    ds.RemotingFormat 
    = SerializationFormat.Binary; 

    bf.Serialize(fs,ds);  

     3.更独立的Datatable

    DataTable Write XML  string connstr = "server=(local);database=northwind;integrated security=true;async=true";
    SqlDataAdapter dadpt 
    = new SqlDataAdapter("select * from [order details]", connstr);
    DataTable dt 
    = new DataTable("Customer");
    dadpt.Fill(dt);

    dt.WriteXml(
    @"c:\DataTable.xml",true);
    dt.WriteXmlSchema(
    @"c:\DataTableSchema.xml");   DataTable Read XML
    StreamReader sr 
    = new StreamReader(@"C:\DataTableSchema.xml");

    DataTable dt 
    = new DataTable();
    dt.ReadXmlSchema(sr);

    dt.ReadXml(
    new StreamReader(@"c:\dataTable.xml"));

    this.dataGridView1.DataSource = dt;    DataTable Merge
    string connstr = "server=(local);database=northwind;integrated security=true;async=true";
    SqlDataAdapter dadpt 
    = new SqlDataAdapter("select * from customers", connstr);
    DataTable dt 
    = new DataTable("Customer");
    dadpt.Fill(dt);

    SqlDataAdapter dadpt1 
    = new SqlDataAdapter("select * from customers", connstr);
    DataTable dt1 
    = new DataTable("Customer1");
    dadpt1.Fill(dt1);

    dt.Merge(dt1);

    this.dataGridView1.DataSource = dt;  DataTable Load DataReader
    string connstr = "server=(local);database=northwind;integrated security=true;async=true";
    SqlConnection conn 
    = new SqlConnection(connstr);
    conn.Open();
    SqlCommand cmd 
    = new SqlCommand("select * from [order details]", conn);
    SqlDataReader dr 
    = cmd.ExecuteReader();

    DataTable dt 
    = new DataTable("Customer");
    dt.Load(dr);

    this.dataGridView1.DataSource = dt;

    转载自:...

  • 相关阅读:
    结对项目开始
    团队项目开始
    个人项目总结
    python面向对象
    OSI七层模型
    Django中的orm的惰性机制
    Python装饰器
    python运算符
    python元祖和列表
    Sencha Touch 1.x 快速入门 第三章 布局(2) Card布局
  • 原文地址:https://www.cnblogs.com/ghx88/p/402910.html
Copyright © 2011-2022 走看看