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;