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;
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值