快讯

XML学习:使用XML返回DataTable对象

2004-02-14 09:34  出处:PConline  作者:triout(翻译)  责任编辑:linjixiong 

  问题   在VisualStudio.Net集成开发环境中试图添加到这个XMLWebService的引用时,也会看到下面类似的错误信息:    System.Data.DataRelationcannotbeserializedbecauseitdoesnothaveadefaultpublicconstructor.   在VisualStudio.Net集成开发环境中试图添加到这个XMLWebService的引用时,也会看到下面类似的错误信息:      InternalServerError.Unabletorequest"http://localhost/Webservice1/Service1.asmx?WSDL".Theserverrespondedwitherrorcode"ProtocolError".   原因   DataTable、DataRow、DataView以及DataViewManager等对象不能被序列化也不能被从一个XMLXMLWebservice返回。要返回,至少必须是一个完整的DataSet,因此必须把要返回的数据复制到一个DataSet中。   解决   解决这个问题的方法是:返回一个DataSet以替代DataTable。一个DataSet对象中可以包含一个或多个DataTable对象。   状态   本行为正在设计中。   更多信息   操作步骤   说明:以下示例包含VB.NET、C#和J#。   在一个已存在的XMLWebService中添加一个返回DataTable对象的WebService方法。以下代码创建一个连接到MicrosoftSQLServer数据库和Authors表。如果你想使用本代码,请修改并连接到你的安装有SQLServer的计算机上。'VisualBasic   FunctionGiveMeADataTable()AsSystem.Data.DataTable   DimconnAsNewSystem.Data.SqlClient.SqlConnection("Server=YourServer;InitialCatalog=pubs;IntegratedSecurity=SSPI;")   DimdsAsNewSystem.Data.DataSet()   DimadapterAsNewSystem.Data.SqlClient.SqlDataAdapter()   adapter.SelectCommand=NewSystem.Data.SqlClient.SqlCommand("Select*FromAuthors",conn)   adapter.Fill(ds,"Authors")   Returnds.Tables("Authors")   EndFunction      希望看到更多更经典的开发技巧,请随时刷新《开发特区》栏目。
察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
  //VisualC#   [WebMethod]   publicSystem.Data.DataTableGiveMeADataTable()   {   System.Data.SqlClient.SqlConnectionconn=newSystem.Data.SqlClient.SqlConnection("Server=YourServer;InitialCatalog=pubs;IntegratedSecurity=SSPI;");   System.Data.DataSetds=newSystem.Data.DataSet();   System.Data.SqlClient.SqlDataAdapteradapter=newSystem.Data.SqlClient.SqlDataAdapter();   adapter.SelectCommand=newSystem.Data.SqlClient.SqlCommand("Select*FromAuthors",conn);   adapter.Fill(ds,"Authors");   returnds.Tables["Authors"];   }      /**VisualJ#*/   /**@attributeWebMethod()*/   publicSystem.Data.DataTableGiveMeADataTable()   {   System.Data.SqlClient.SqlConnectionconn=newSystem.Data.SqlClient.SqlConnection("Server=YourServer;InitialCatalog=pubs;IntegratedSecurity=SSPI;");   System.Data.DataSetds=newSystem.Data.DataSet();   System.Data.SqlClient.SqlDataAdapteradapter=newSystem.Data.SqlClient.SqlDataAdapter();   adapter.set_SelectCommand(newSystem.Data.SqlClient.SqlCommand("Select*FromAuthors",conn));   adapter.Fill(ds,"Authors");   System.Data.DataTableCollectiondtc=ds.get_Tables();   returndtc.get_Item("Authors");   }   编译这个XMLWebservice.。   浏览你添加了上面的方法的XMLWebService的URL,你将收到错误信息。   修改为如下的代码,使用DataSet对象替换DataTable对象:'VisualBasic   FunctionGiveMeADataSet()AsSystem.Data.DataSet   DimconnAsNewSystem.Data.SqlClient.SqlConnection("Server=YourServer;InitialCatalog=pubs;IntegratedSecurity=SSPI;")   DimdsAsNewSystem.Data.DataSet()   DimadapterAsNewSystem.Data.SqlClient.SqlDataAdapter()   adapter.SelectCommand=NewSystem.Data.SqlClient.SqlCommand("Select*FromAuthors",conn)   adapter.Fill(ds,"Authors")   Returnds   EndFunction      希望看到更多更经典的开发技巧,请随时刷新《开发特区》栏目。
察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
  //VisualC#   [WebMethod]   publicSystem.Data.DataSetGiveMeADataSet()   {   System.Data.SqlClient.SqlConnectionconn=newSystem.Data.SqlClient.SqlConnection("Server=YourServer;InitialCatalog=pubs;IntegratedSecurity=SSPI;");   System.Data.DataSetds=newSystem.Data.DataSet(); System.Data.SqlClient.SqlDataAdapteradapter=newSystem.Data.SqlClient.SqlDataAdapter();   adapter.SelectCommand=newSystem.Data.SqlClient.SqlCommand("Select*FromAuthors",conn);   adapter.Fill(ds,"Authors");   returnds;   }      /**VisualJ#*/   /**@attributeWebMethod()*/   publicSystem.Data.DataSetGiveMeADataSet()   {   System.Data.SqlClient.SqlConnectionconn=newSystem.Data.SqlClient.SqlConnection("Server=YourServer;InitialCatalog=pubs;IntegratedSecurity=SSPI;");   System.Data.DataSetds=newSystem.Data.DataSet();   System.Data.SqlClient.SqlDataAdapteradapter=newSystem.Data.SqlClient.SqlDataAdapter();   adapter.set_SelectCommand(newSystem.Data.SqlClient.SqlCommand("Select*FromAuthors",conn));   adapter.Fill(ds,"Authors");   returnds;   }      编译这个XMLWebService。   再浏览这个XMLWebService方法的URL连接,将不会看到上面的错误提示。   本文档信息应用于:   MicrosoftWebServices(包括.NETFramework)1.0   MicrosoftWebServices(包括.NETFramework1.1)   MicrosoftVisualBasic.NET(2002)   MicrosoftVisualC#.NET(2002)   MicrosoftASP.NET(包括.NETFramework)1.0   MicrosoftVisualJ#.NET(2002)   MicrosoftVisualJ#.NET(2003)   MicrosoftVisualC#.NET(2003)   MicrosoftVisualBasic.NET(2003)   MicrosoftASP.NET(包括.NETFramework1.1)          希望看到更多更经典的开发技巧,请随时刷新《开发特区》栏目。
察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
IT热词搜索 来源:360新闻
软件论坛帖子排行
相关文章

相关软件:

腾讯QQ2012
大小:52.93 MB 授权:免费
腾讯QQ2012
立即下载
腾讯QQ2013
大小:49.32 MB 授权:免费
腾讯QQ2013
立即下载