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

博客介绍了新的索引引擎具有更快的执行效率,通过代码执行时间对比,在2003中需157秒完成的操作,在2005中仅需11秒。

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

DataSetds=newDataSet();

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;

DateTimedatBegin
=DateTime.Now;

Randomrand
=newRandom();
inti,intValue;
DataRowdr;

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(
"ElapsedTime:"+(DateTime.Now-datBegin).Seconds.ToString());
MessageBox.Show(
"count="+ds.Tables[0].Rows.Count.ToString());
2.Dataset可以序列化为二进制文件
stringconnstr="server=(local);database=northwind;integratedsecurity=true;async=true";

DataSetds
=newDataSet();
SqlDataAdapterdadpt
=newSqlDataAdapter("select*from[orderdetails]",connstr);
dadpt.Fill(ds);

BinaryFormatterbf
=newBinaryFormatter();
FileStreamfs
=newFileStream(@"c:/xml1.txt",FileMode.OpenOrCreate);

ds.RemotingFormat=SerializationFormat.Binary;


bf.Serialize(fs,ds);
3.更独立的Datatable
DataTable Write XML
stringconnstr="server=(local);database=northwind;integratedsecurity=true;async=true";
SqlDataAdapterdadpt
=newSqlDataAdapter("select*from[orderdetails]",connstr);
DataTabledt
=newDataTable("Customer");
dadpt.Fill(dt);

dt.WriteXml(
@"c:/DataTable.xml",true);
dt.WriteXmlSchema(
@"c:/DataTableSchema.xml");
DataTable Read XML
StreamReadersr=newStreamReader(@"C:/DataTableSchema.xml");

DataTabledt
=newDataTable();
dt.ReadXmlSchema(sr);

dt.ReadXml(
newStreamReader(@"c:/dataTable.xml"));

this.dataGridView1.DataSource=dt;
DataTable Merge
stringconnstr="server=(local);database=northwind;integratedsecurity=true;async=true";
SqlDataAdapterdadpt
=newSqlDataAdapter("select*fromcustomers",connstr);
DataTabledt
=newDataTable("Customer");
dadpt.Fill(dt);

SqlDataAdapterdadpt1
=newSqlDataAdapter("select*fromcustomers",connstr);
DataTabledt1
=newDataTable("Customer1");
dadpt1.Fill(dt1);

dt.Merge(dt1);

this.dataGridView1.DataSource=dt;
DataTable Load DataReader
stringconnstr="server=(local);database=northwind;integratedsecurity=true;async=true";
SqlConnectionconn
=newSqlConnection(connstr);
conn.Open();
SqlCommandcmd
=newSqlCommand("select*from[orderdetails]",conn);
SqlDataReaderdr
=cmd.ExecuteReader();

DataTabledt
=newDataTable("Customer");
dt.Load(dr);

this.dataGridView1.DataSource=dt;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值