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;