首页 >> ADO.NET >> 正文
通过Web服务向客户端传送ADO.NET DataSet-ADO.NET
来源:Dotnet频道 作者:采集 时间:2008-3-31


  本篇文章将说明如何从服务器上向客户端传送ADO.NET DataSet,服务器将通过一个Web服务传送DataSet(因此服务器需要安装有IIS),我们能够通过IE、Opera或Netscape Navigator等标准的互联网浏览器查看DataSet。另外,我们还会创建一个简单的Windows SmartClient,以演示如何接收DataSet,并在data grids等标准的Windows组件中使用它。
  Web服务是什么?
  Web服务能够轻易地解决当今困扰许多编程人员的根本性问题:即如何将信息由“这里”传送到“那里”。经过多年的发展,已经出现了多种在系统间传输数据的不同方式(包括FTP、ODBC、映射驱动器、DCOM等),但这些方法在解决易用性、开放性和可扩展性等问题方面都不如Web服务。Web服务的编写非常容易,它基于XML标准,可以以与IIS同样的方式进行扩展(通过在现有的硬件上添加更多的处理器或在服务器“农场”中添加服务器)。象COM对象那样,Web服务使我们能够创建逻辑块,供我们自己或别人使用。
  多平台
  尽管是由微软支持的,但Web服务决不是微软一家的技术。Web服务的一个优点是,它可以被其他的编程人员使用,而无需考虑他们所使用的平台(Mac、Unix, Linux, PocketPC等),所有的数据都是通过XML被发送到调用的系统的。在这种方式下,我们仍然可以选择使用VB.NET、C#、VB6等编程语言,而我们的商业伙伴可能使用的是PERL、PHP或Java与我们的系统相连。但在本篇文章中,我们将使用VB.NET编程语言。
  在代码中标识Web服务
  在VB.NET中将一个类标识为Web服务非常地简单,只要在类的定义前添加标识符即可。由于不要求对主代码进行任何变化,因此向开发Web服务的过渡相当地简单。
  通过Web服务发送DataSet
  使用Web服务发送ADO.NET数据与发送简单类型(例如字符串和整型)的数据一样简单。我们的数据可以来自数据库、XML文件或使用ADO.NET的高级数据构建命令在内存中构建的数据,在本篇文章中包括有各种情况的例子。读者需要清楚的是,每种方法都遵循着下面的基本模式:
   Public Function theFunctionName() as DataSet
  dim ds as DataSet
  …
  Return ds
  End Function
  
  
  从Access 2002中提取数据的例子:
  
   Public Function ListPhoneNumbers_Access() As DataSet
  Dim myConnection As OleDbConnection
  Dim myDataAdapter As OleDbDataAdapter
  Dim myDataSet As DataSet
  
  myConnection = New OleDbConnection _
  ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" + _
  Server.MapPath("/") + "\PhoneNumbers\PhoneNumbers.mdb")
  myDataAdapter = New _
  OleDbDataAdapter("SELECT * FROM PhoneNumbers", myConnection)
  myDataSet = New DataSet()
  myDataAdapter.Fill(myDataSet, "PhoneNumbers")
  Return myDataSet
  End Function
  
  
  从XML中提取DataSet的例子:
  
   Public Function ListPhoneNumbers_XML() As DataSet
  Dim ds As New DataSet()
  ds.ReadXml((Server.MapPath("/") + _
  "\PhoneNumbers\PhoneNumbers.xml"), XmlReadMode.InferSchema)
  Return ds
  End Function
  
  
  通过编程方式提供DataSet:
  
   Public Function ListPhoneNumbers_Default() As DataSet
  Dim ds As DataSet = New DataSet()
  Dim dt As DataTable = ds.Tables.Add("PhoneNumbers")
  Dim newRow As DataRow
  
  dt.Columns.Add("name")
  dt.Columns.Add("home")
  dt.Columns.Add("mobile")
  dt.Columns.Add("netWorth")
  
  newRow = dt.NewRow
  newRow("name") = "Jeff Laughlin"
  newRow("home") = "555-111-2222"
  newRow("mobile") = "555-111-3333"
  newRow("netWorth") = "Negligible"
  dt.Rows.Add(newRow)
  
  newRow = dt.NewRow
  newRow("name") = "Bill Gates"
  newRow("home") = "555-222-2222"
  newRow("mobile") = "555-222-3333"
  newRow("netWorth") = "33.6 Billion"
  dt.Rows.Add(newRow)
  
  newRow = dt.NewRow
  newRow("name") = "Steve Balmer"
  newRow("home") = "555-333-2222"
  newRow("mobile") = "555-333-3333"
  newRow("netWorth") = "15.1 Billion"
  dt.Rows.Add(newRow)
  
  Return ds
  
  End Function
  
  
  Web服务的部署
  与传统的网站相似,尽管不是不会遇到任何问题,部署Web服务是相当简单的。
  如果Web服务是通过Visual Studio.NET的集成环境开发的,则在本机上部署的问题都已经自动地解决了。如果想将自己的移植到其他的计算机上,可以选择使用Visual Studio.NET内置的向导工具重新部署自己的Web服务或者将Web服务的站点拷贝到其他计算机的一个文件夹中。如果选择了拷贝站点的方法,则我们还需要使用IIS MMC接口执行一个额外的步骤。我们需要将该文件夹标识为Virtual Directory Application,以便适当的配置能够得到ASP.NET处理器的处理。如果忘了将该文件夹指定为虚拟的目录应用,当在浏览器中加载URL时,就会得到下面的错误信息:
  It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS。(这是一个在应用层次之外使用注册为allowDefinition='MachineToApplication'部件的错误,它可能是由没有在IIS中将虚拟目录配置为应用而引起的。)
  Web服务的测试
  Visual Studio.NET提供了一个只使用浏览器的非常简单的Web服务测试方法,在浏览器的地址栏输入ASMX文件的地址,连接到Web服务,并对代码进行测试。
  http://localhost/PhoneNumbers/PhoneNumbers.asmx
  
相关新闻
相关评论
 
评论表单加载中...
 
ADO.NET文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
最新文章
   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号