ADO.NET 2.0 中的新增 DataSet 功能--MSDN(downmoon翻译成Csharp)
原文地址:http://www.microsoft.com/china/MSDN/library/data/dataAccess/adonetdatasetenhance.mspx?mfr=true
本文主要帮助读者了解有关 .NET Framework DataSet 类以及与它密切相关的类中的新增 ADO.NET 2.0 功能的知识。这些更改包括对 DataSet、DataTable 和 DataView 类的功能和性能增强。
因为原文代码用的是vb.net,阅读起来不便,邀月翻译成Csharp2005,方便大家阅读。呵呵!
private
void
button1_Click(
object
sender,EventArgse)
...
{
//下列代码在vs2005下执行40秒!
//在vs2003下执行30分钟!!增加44倍!!
DataSetds
=
new
DataSet();
System.DateTimetime1
=
new
System.DateTime();
System.TimeSpants
=
new
TimeSpan();
System.Timers.Timertm
=
new
System.Timers.Timer();
tm.Enabled
=
true
;
tm.Interval
=
1000
;
int
i;
int
SPsecond
=
0
;
DataRowdr;
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;
Randomrand
=
new
Random();
//
Randomri=newRandom(unchecked((int)DateTime.Now.Ticks));
int
value;
for
(
int
k
=
1
;k
<=
1000000
;k
++
)
...
{
try
...
{
value
=
rand.Next();
dr
=
ds.Tables[
0
].NewRow();
dr[
"
ID
"
]
=
value;
dr[
"
Value
"
]
=
value;
ds.Tables[
0
].Rows.Add(dr);
}
catch
(Exceptionex)
...
{
}
}
WaitLabel.Visible
=
false
;
this
.Cursor
=
this
.DefaultCursor;
ts
=
DateTime.Now
-
time1;
SPsecond
=
ts.Seconds;
MessageBox.Show(
"
ElapsedTime:
"
+
SPsecond.ToString()
+
"
Seconds
"
);
MessageBox.Show(
"
count=
"
+
ds.Tables[
0
].Rows.Count);
}
private
void
button2_Click(
object
sender,EventArgse)
...
{
XMLFormat();
}
private
void
XMLFormat()
...
{
DataSetds
=
new
DataSet();
System.Data.SqlClient.SqlDataAdapterda
=
new
System.Data.SqlClient.SqlDataAdapter(
"
select*from[orderdetails]
"
,GetConnectionString());
da.Fill(ds);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatterbf
=
new
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
string
FileName
=
"
c:/
"
+
DateTime.Now.ToString(
"
yyyyMMddhhmmsslll
"
)
+
"
xml20.txt
"
;
System.IO.FileStreamfs
=
new
System.IO.FileStream(FileName,System.IO.FileMode.CreateNew);
bf.Serialize(fs,ds);
MessageBox.Show(
"
生成成功
"
+
FileName
+
"
"
+
"
文件大小(b):
"
+
fs.Length.ToString());
}
private
void
BinaryFormat()
...
{
DataSetds
=
new
DataSet();
System.Data.SqlClient.SqlDataAdapterda
=
new
System.Data.SqlClient.SqlDataAdapter(
"
select*from[orderdetails]
"
,GetConnectionString());
da.Fill(ds);
//
下句使生成数据减少80%左右
ds.RemotingFormat
=
SerializationFormat.Binary;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatterbf
=
new
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
string
FileName
=
"
c:/
"
+
DateTime.Now.ToString(
"
yyyyMMddhhmmsslll
"
)
+
"
Binary20.txt
"
;
System.IO.FileStreamfs
=
new
System.IO.FileStream(FileName,System.IO.FileMode.CreateNew);
bf.Serialize(fs,ds);
MessageBox.Show(
"
生成成功
"
+
FileName
+
"
"
+
"
文件大小(b):
"
+
fs.Length.ToString());
}
private
string
GetConnectionString()
...
{
//
returnMySettings.Value.NorthwindConnection;
return
"
server=10.0.0.121;database=northwind;uid=sa;pwd=sa
"
;
}
private
void
button3_Click(
object
sender,EventArgse)
...
{
BinaryFormat();
}
private
void
button4_Click(
object
sender,EventArgse)
...
{
getGridViewData();
}
private
void
getGridViewData()
...
{
try
...
{
SqlConnectionconnection
=
new
SqlConnection(GetConnectionString());
SqlCommandcommand
=
new
SqlCommand(
"
SELECT*fromcustomers
"
,connection);
connection.Open();
System.Data.SqlClient.SqlDataReaderdr
=
command.ExecuteReader();
//
FilltablewithdatafromDataReader
System.Data.DataTabledt
=
new
DataTable();
dt.Load(dr,LoadOption.OverwriteChanges);
//
Displaythedata
dataGridView1.DataSource
=
dt;
}
catch
(SqlExceptionex)
...
{
MessageBox.Show(ex.Message);
}
}
邀月总结:2.0对1.1的改进,不仅在DataSet,同样在GridView对于DataGrid性能的改进。应尽量摒弃Datagrid!这也是微软在2.0下默认不加载DataGrid的原因。
助人等于自助! 3w@live.cn
分享到:
相关推荐
ADO.NET 2.0技术内幕(高清 中文 带书签 全) 编辑推荐 核心主题全面涵盖,深入剖析个人精髓;示例丰富,同时提供Visual Basic和Visual C#两种版本;独特的常见问题解析方式可使难题迎刃而解。 引导开发人员创建...
13.1 ADO.NET 2.0概述 211 13.1.1 ADO.NET 2.0的新特性 211 13.1.2 ADO.NET中的对象 212 13.2 Connection对象 212 13.3 Command对象 215 13.3.1 插入数据 215 13.3.2 查询数据 217 13.3.3 更新数据 219 13.3.4 删除...
ADO.NET 2.0 除了增强旧功能外,也提供了相当多的新功能,包含了以基础类为本(base-class-based)的数据源提供程序(provider)模型、异步访问架构、批处理更新与大量数据复制(bulk copy)、SQL Server 2005 的回...
The DataSet Grows Up in ADO.NET 2.0
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#)第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#)第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页).ppt ...
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证(共28页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第06章 ASP.NET数据库编程 ADO ODBC DataSet OLE XML(共27页)....
3.2 ASP.NET 2.0新增控件 3.2.1 BulletedList控件的应用 3.2.2 Substitution控件的应用 3.2.3 Wizard控件的应用 3.2.4 MultiView和View控件的应用 3.2.5 FileUpload控件的应用 3.3 其他常用控件 3.3.1 ...
本文是研究在ASP.NET 2.0中实现这些常见的数据访问模式之技术的长篇系列教程的第一篇。我们将从创建一个软件框架开始,这个框架的组成部分包括一个使用强类型的DataSet的数据访问层(DAL),一个实施用户定义的业务...
本文是研究在ASP.NET 2.0中实现这些常见的数据访问模式之技术的长篇系列教程的第一篇。我们将从创建一个软件框架开始,这个框架的组成部分包括一个使用强类型的DataSet的数据访问层(DAL),一个实施用户定义的业务...
示例描述:本章学习ADO.NET 2.0。 13-01.aspx 使用Connection对象连接到数据库。 13-02.aspx 使用Connection对象连接到Access数据库。 13-03.aspx 新增数据。 13-04.aspx 查询数据。 13-05.aspx 更新...