ADO.NET 2.0 中的新增 DataSet 功能--MSDN(downmoon翻译成Csharp)
原文地址:
http://www.microsoft.com/china/MSDN/library/data/dataAccess/adonetdatasetenhance.mspx?mfr=true
因为原文代码用的是vb.net,阅读起来不便,帮翻译成Csharp2005,方便大家阅读。呵呵!
private
void
button1_Click(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
//下列代码在vs2005下执行40秒!
//在vs2003下执行30分钟!!增加44倍!!
DataSet ds = new DataSet();
System.DateTime time1 = new System.DateTime();
System.TimeSpan ts = new TimeSpan();
System.Timers.Timer tm = new System.Timers.Timer();
tm.Enabled = true;
tm.Interval = 1000;
int i;
int SPsecond = 0;
DataRow dr;
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"));
WaitLabel.Visible = true;
this.Cursor = Cursors.WaitCursor;
this.Refresh();
time1 = DateTime.Now;
Random rand = new Random();
//Random ri = new Random(unchecked((int)DateTime.Now.Ticks));
int value;
for (int k = 1; k <= 1000000; k++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
try
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
value = rand.Next();
dr = ds.Tables[0].NewRow();
dr["ID"] = value;
dr["Value"] = value;
ds.Tables[0].Rows.Add(dr);
}
catch (Exception ex)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
}
}
WaitLabel.Visible = false;
this.Cursor = this.DefaultCursor;
ts = DateTime.Now - time1;
SPsecond = ts.Seconds;
MessageBox.Show("Elapsed Time: " + SPsecond.ToString() + " Seconds");
MessageBox.Show("count = " + ds.Tables[0].Rows.Count);
}
private
void
button2_Click(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
XMLFormat();
}
private
void
XMLFormat()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
DataSet ds = new DataSet();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("select * from [order details]", GetConnectionString());
da.Fill(ds);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
string FileName = "c:\" + DateTime.Now.ToString("yyyyMMddhhmmsslll") + "xml20.txt";
System.IO.FileStream fs = new System.IO.FileStream(FileName, System.IO.FileMode.CreateNew);
bf.Serialize(fs, ds);
MessageBox.Show("生成成功" + FileName + " " + "文件大小(b):" + fs.Length.ToString());
}
private
void
BinaryFormat()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
DataSet ds = new DataSet();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("select * from [order details]", GetConnectionString());
da.Fill(ds);
//下句使生成数据减少5倍左右
ds.RemotingFormat = SerializationFormat.Binary;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
string FileName = "c:\" + DateTime.Now.ToString("yyyyMMddhhmmsslll") + "Binary20.txt";
System.IO.FileStream fs = new System.IO.FileStream(FileName, System.IO.FileMode.CreateNew);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
bf.Serialize(fs, ds);
MessageBox.Show("生成成功" + FileName + " " + "文件大小(b):" + fs.Length.ToString());
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
private
string
GetConnectionString()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
//return MySettings.Value.NorthwindConnection;
return "server=10.0.0.121;database=northwind;uid=sa;pwd=sa";
}
private
void
button3_Click(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
BinaryFormat();
}
private
void
button4_Click(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
getGridViewData();
}
private
void
getGridViewData()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
try
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
SqlConnection connection = new SqlConnection(GetConnectionString());
SqlCommand command = new SqlCommand("SELECT * from customers", connection);
connection.Open();
System.Data.SqlClient.SqlDataReader dr = command.ExecuteReader();
//Fill table with data from DataReader
System.Data.DataTable dt = new DataTable();
dt.Load(dr, LoadOption.OverwriteChanges);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// Display the data
dataGridView1.DataSource = dt;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
catch (SqlException ex)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
MessageBox.Show(ex.Message);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
}