ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
比较XML数据存取APIs(ZT)
选择正确的API从SQL Server获取XML数据。

by Greg Ewing and Jon Rauschenberger

技术工具箱: C#, SQL Server 2000, ASP.NET, XML, VB6

.NET Framework包含几个新的数据存取APIs,每种API对访问SQL Server中XML数据的支持程度都不同。在如何完成你的解决方案、需要写多少代码方面,选择不同的API将会有不同的结果。在本专栏中,我将阐述Microsoft的四种XML数据存取APIs:ActiveX Data Objects (ADO) 2.6、ADO.NET、SqlDataReader和 SQLXML。



我们将重点讲述实现每种API需要的代码,并比较每种API提供的性能和可扩展性。通过一步步构建查询一个Northwind数据库所需要的代码,将结果转化成XML,我们来逐个说明这些API。然后通过对它们进行一些负载测试,我们来看看它们的性能如何。



要确定哪种XML数据存取API能够最好地满足你的需求,你需要考虑几个因素。首先,看一下每种API需要的代码量。然后,考虑你有多大的灵活性来控制API返回的XML格式。有时候,你不能控制XML的格式。最后,考虑API是如何执行和扩展的。因为SQL Server没有将本地数据存为XML,所以将数据从本地的SQL Server二进位格式转换成XML所需要的费用可能很高,可能会限制你的应用程序的性能和可扩展性



ADO是一个受欢迎的数据存取API。Microsoft最初在ADO 2.1中增加了将结果集转换成XML的支持功能,这就使你可以将一个结果集存为一个XML文件。相对于ADO 2.6对XML有限的支持,ADO.NET增加了许多新的XML功能。ADO.NET DataSet对象支持将结果集串行化成格式规范的XML。



让我们开始做个样例程序吧,打开VS.NET,创建一个新的C#类库。将Class1.cs重新命名为DBXml.cs,并取消名字空间。然后,添加引用System.Data.dll,它包含ADO.NET名字空间。接着,打开ADONet类并引入这些名字空间:using System.Data;

using System.Data.SqlClient;









现在,给DBXml 类添加代码,连接到数据库并用ADO.NET来执行SELECT语句(见列表1)。



列表1:



C# 用ADO.NET执行一个SQL SELECT语句



运用SqlDataAdapter可以很容易地通过构造器访问SQL SELECT命令,而且可以通过Selectcommand的Parameters集合访问任何必要的参数。通过运用InsertCommand和UpdateCommand属性,连同它们相关的Parameters集合,你就可以插入或更新数据。

     public string ExecuteSelect

   (string CustomerID,

   string ConnectionString)

{

   SqlConnection myConnection = new

      SqlConnection(ConnectionString);

   SqlDataAdapter mySqlDataAdapter1 = new

      SqlDataAdapter("SELECT * FROM customers " +  

      "WHERE CustomerID = @CustomerID",

      myConnection);

   mySqlDataAdapter1.SelectCommand.

      Parameters.Add("@CustomerID",

      SqlDbType.Char, 5, "CustomerID");



   mySqlDataAdapter1.SelectCommand.

      Parameters["@CustomerID"].Value =

      CustomerID;



   DataSet myDataSet = new DataSet();

   mySqlDataAdapter1.Fill

      (myDataSet,"Customers");



   return myDataSet.GetXml();

}









ExecuteSelect函数做的第一件事就是通过传递连接字符串到构造器用SqlConnection类来初试化一个到数据库的连接。然后,创建 SqlDataAdapter,将SELECT语句和连接对象传递到构造器中。SELECT语句有一个参数用于你选择的用户的ID,所以你必须将那个参数添加到SelectCommand Parameters集合中。Add函数可以接受参数的名字、数据类型、大小和列的关连。一旦这个参数是集合的一部分,你需要给它赋以正确的值。



下面的两步,创建DataSet并用适配器填充它,完成了大部分工作。如果连接没有打开,用DataAdapter上的Fill方法来打开连接,或者用已打开的连接,它通常返回到最初的状态。然后,你用GetXML函数将DataSet转换成XML字符串,返回给调用者。



运用SqlDataReader

SqlDataReader为数据存取提供了一个连续的、只读的指针,使其成为从SQL Server读取数据的最快的方式。DataReader对XML没有提供本地的支持,所以你必须自己写XML转换代码或运行一个返回XML的查询过程。对于这个例子,你可以用FOR XML RAW子句让SQL Server返回XML的数据。

 
 
本站关键词:
|东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站||东莞商标设计|东莞商标注册|东莞yahoo推广|东莞网络实名|东莞百度baidu推广|东莞google推广|东莞关键词推广|东莞网站推广策划|东莞域名申请|东莞主机申请|东莞空间申请|做网站|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有