请教高手:为什么我的.NET Windows应用程序上的DataSet控件读取不到定义在XML Web Services中的DS?

ervinlj 2006-04-19 10:30:48
小弟我是自学.NET的新手,在根据MSDN中的一篇教程演练"创建分布式应用程序"
ms-help://MS.MSDNQTR.2003FEB.2052/vsintro7/html/vbwlkCreatingDistributedWebApplicationWalkthrough.htm
碰到了问题,请各位大哥帮我看看哈
我根据这篇文档,用XML Web Service封装了一个中间层的业务对象是用来读取数据库的,然后在这个Web Service项目中添加了一个用VB.NET做的项目是用来在窗体上显示数据的(这个VB.NET项目是调用XML Web Service),我在这个添加的VB.NET项目中新增了一个到本机的Web services引用,可是在这个VB.NET项目中窗体我准备放置一个DataSet控件创建一个封装在Web Service的类型化数据集的时候.老是不能成功,初始数据集名称显示为"项目中无数据集",下拉选择"引用的数据集",在空的下拉文本框中按照这篇MSDN文档输入:"AuthorsWebClient.localhost.authors1"还是不行,请问熟悉.NET的高手这是怎么回事啊?也就是在进行到这步的时候:
将控件添加到 Web 页

1.从工具箱的“数据”选项卡中将 DataSet 对象拖到窗体上。出现“选择数据集”对话框。选择“TypedDataSet”并从“名称”列表中选择“AuthorsWebClient.ServerName.authors1”。一个 DataSet 对象被添加到组件栏中。
出现问题了

我明明在这个VB.NET项目中添加了到本机的Web Services的引用的啊.

因为我是自学的,身边没有知道的高人啊

谢谢了,马上给分的.
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ervinlj 2006-04-19
  • 打赏
  • 举报
回复
<WebMethod()> _
Public Function GetAuthors() As authors1
Dim authors As New authors1
SqlDataAdapter1.Fill(authors)
Return authors
End Function

<WebMethod()> _
Public Function Update(ByVal authorChanges As authors1) As authors1

If Not (authorChanges Is Nothing) Then
SqlDataAdapter1.Update(authorChanges)
Return authorChanges
Else
Return Nothing
End If

End Function
这是我在Web Services中的返回DataSet的程序
wugong 2006-04-19
  • 打赏
  • 举报
回复
你先把做 web service中要返回dataset的程序贴出来看看有没有问题
wugong 2006-04-19
  • 打赏
  • 举报
回复
不用客气,我这段时间也是在做webservice 也是没人问,闭门造车,有时好难
ervinlj 2006-04-19
  • 打赏
  • 举报
回复
谢谢蜈蚣兄弟了哟 感谢 晚上回家把分全给你 后后
wugong 2006-04-19
  • 打赏
  • 举报
回复
类型化数据集与非类型化数据集
数据集可以类型化或非类型化。类型化数据集这样一种数据集,它先从基 DataSet 类派生,然后使用 XML 架构文件(.xsd 文件)中的信息生成新类。架构中的信息(表、列等)被作为一组第一类对象和属性生成并编译为此新数据集类。

注意 有关数据集架构的更多信息,请参见 XML 架构和数据。
因为类型化 DataSet 类从基 DataSet 类继承,所以此类型化类承接 DataSet 类的所有功能,并且可与将 DataSet 类的实例作为参数的方法一起使用。

相形之下,非类型化数据集没有相应的内置架构。与类型化数据集一样,非类型化数据集也包含表、列等,但它们只作为集合公开。(不过,手动创建了表和非类型化数据集中的其他数据元素后,可以使用数据集的 WriteXmlSchema 方法将数据集的结构导出为架构。)

在应用程序中可以使用这两种类型中的任何一种。不过,Visual Studio 对类型化数据集有更多工具支持,并且,类型化数据集使对数据集的编程更简单且不易出错。

对比类型化和非类型化数据集中的数据访问
类型化数据集的类有一个对象模型,在该对象模型中此数据集的表和列第一类对象。例如,如果使用的是类型化数据集,可以使用如下代码引用列:

' Visual Basic
' This accesses the CustomerID column in the first row of
' the Customers table.
Dim s As String
s = dsCustomersOrders1.Customers(0).CustomerID

相比较而言,如果使用的是非类型化数据集,等效的代码为:

' Visual Basic
Dim s As String
s = CType(dsCustomersOrders1.Tables("Customers").Rows(0).Item("CustomerID"), String)

类型化访问不但更易于读取,而且完全受 Visual Studio 代码编辑器中智能感知的支持。除了更易于使用外,类型化数据集的语法还在编译时提供类型检查,从而大大降低了为数据集成员赋值时发生错误的可能性。在运行时对类型化数据集中的表和列的访问也略为快一些,因为访问是在编译时确定的,而不是在运行时通过集合确定。

尽管类型化数据集有许多优点,但在许多情况下需要使用非类型化数据集。最显而易见的情形是数据集无架构可用。例如,当应用程序正在与返回数据集的组件交互而您事先不知道其结构是哪种时,便会出现这种情况。同样,有些时候使用的数据不具有静态的可预知结构,这种情况下使用类型化数据集是不切实际的做法,因为对于数据结构中的每个更改,您都必须重新生成类型化数据集类。

更常见的是,许多时候可能需要动态创建无可用架构的数据集。这种情况下,数据集只是一种方便的、可用来保留信息的结构(只要数据可以用关系方法表示)。同时,您还可以利用数据集的功能,如序列化传递到另一进程的信息或写出 XML 文件的能力。

以上为msdn解释
(多多交流:wugong@km169.net)
ervinlj 2006-04-19
  • 打赏
  • 举报
回复
问题已经解决了
我把Web 引用上删除掉重新再引用一下 竟然行了
数据集竟然是类型化数据集 不是先前我们讨论的非类型化数据集
虽然问题解决了 但是我还有一个问题不是很明白,就是是搞不清楚什么情况下DS返回的是类型化数据集,什么情况下返回的是非类型化数据集 ?



12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧