ADO.NET 2.0 功能一览
批量导入
很多数据库应用程序可以快速、大批量地将行“插入”到SQL Server中。这方面的
典型示例是一个将行插入SQL Server的应用程序,这些行对应于从硬件设备(例如电话
交换机或医院患者监视器)进行的读取操作。尽管SQL Server随附了实用工具(例如bc
p)以适应这种情况,但这些实用工具通常使用文件作为它们的输入。SqlClient包含一
个名为SqlBulkCopy的新类。该类的目的不是像BCP那样直接消耗来自文件的输入并产生
文件输出,而是为了适应快速而有效地将很多行从客户端插入到数据库中这一情况。Sq
lBulkCopy可以从数据读取器和数据集获得它的输入。这意味着,您不仅可以直接从提供
程序流式传输一系列行(DataReader),还可以用从硬件设备(不是提供程序)获得的外
部数据填充数据集以及直接更新数据集;在这种情况下,不需要任何提供程序作为源。
// Fill up a DataSet
DataSet ds = new DataSet();
FillDataSetFromHardwareDevice(ds);
// Copy the Data to SqlServer
string connect_string = GetConnectStringFromConfigFile();
SqlBulkCopy bcp = new SqlBulkCopy(connect_string);
bcp.DestinationTableName = "hardware_readings";
bcp.WriteToServer(ds);
提供程序统计信息
某些应用程序编写者发现在他们的应用程序中进行“实时”监视很有用。尽管您可
以使用Windows性能监视器定义自己的性能类,以及使用内部的(并且可能会随着时间的
推移而变得脆弱)SQL Server元数据调用来获得该信息,但SqlClient现在具有一种能够
为您提供该信息的内置方式。通过SqlConnection类上的一个实例方法,您可以获得每个
连接的统计信息(它们类似于ODBC API中提供的信息)。因为存储和收集这些统计信息
需要花费自己的开销,所以有一个可以用来切换统计信息收集的属性。还有一个用于重
置计数器的方法。当然,默认情况下会关闭统计信息收集;而且,当您通过在池方案中
调用Dispose或Close将连接返回到连接池时会启动该功能。以下是产生的统计信息的示
例:
string connect_string = GetConnectStringFromConfigFile();
SqlConnection conn = new SqlConnection(connect_string);
conn.Open();
// Enable
conn.StatisticsEnabled = true;
// do some operations
//
SqlCommand cmd = new SqlCommand("select * from authors", conn);
SqlDataReader rdr = cmd.ExecuteReader();
Hashtable stats = (Hashtable)conn.RetrieveStatistics();
// process stats
IDictionaryEnumerator e = stats.GetEnumerator();
while (e.MoveNext())
Console.WriteLine("{0} : {1}", e.Key, e.Value);
conn.ResetStatistics();
Connection-specific statistics
BuffersReceived : 1
BuffersSent : 1
BytesReceived : 220
BytesSent : 72
ConnectionTime : 149
CursorFetchCount : 0
CursorFetchTime : 0
CursorOpens : 0
CursorUsed : 0
ExecutionTime : 138
IduCount : 0
IduRows : 0
NetworkServerTime : 79
PreparedExecs : 0
Prepares : 0
SelectCount : 0
SelectRows : 0
ServerRoundtrips : 1
SumResultSets : 0
Transactions : 0
UnpreparedExecs : 1
有关这些统计信息所代表的确切含义的详细信息,请参阅ADO.NET 2.0或ODBC文档。
AttachDbFileName
SqlClient数据提供程序支持桌面应用程序(其中,数据库存储在用户的桌面上)以
及客户端-服务器应用程序和基于中间件的应用程序。有一种特殊版本的SQL Server,称
为MSDE;该产品的SQL Server 2005时代的名称是SQL Server 2005 Express Edition。
在桌面应用程序中,数据库本身就特定于应用程序并且与应用程序捆绑在一起。用户甚
至可能不知道SQL Server正在被用作数据储备库,因为应用程序安装程序将运行SQL Se
rver Express安装。为了便于将数据库文件附加到应用程序内部的SQL Server Express
实例,ADO.NET 1.0提供了一个连接字符串参数—AttachDbFileName。但是,必须将该参
数指定为硬编码的路径名,以便使用户难以在默认位置以外的其他位置安装该应用程序
。在ADO.NET 2.0中,AttachDbFileName参数可以是一个相对路径,并且与应用程序配置
设置一起使用。这使得为SQL Server Express设置桌面应用程序就像连接到基于Micros
oft Access文件的数据存储一样容易。
from:asp学习网/title:ADO.NET 2.0 功能一览/ time:2007-6-1 22:18:11
本文主题,NET