Csdn dotnet blog 专家群 ghd258
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;