【问题标题】:Returning a dataset from asmx file to windows form将数据集从 asmx 文件返回到 Windows 窗体
【发布时间】:2013-09-18 01:58:24
【问题描述】:

我想从 Web 服务内的数据集中检索数据到我的 Windows 窗体,然后将数据从我的 Windows 窗体发送到 Web 服务。

我在我的 asmx 文件中定义了一个返回类内数据集的函数:

Public Class DataSetWebService

    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function GetUsers() As DataSet
        Dim cn As SqlConnection = New SqlConnection("Data Source=.;Initial Catalog=WebServiceTest;Integrated Security=SSPI")
        Dim cm As SqlCommand : Dim ds As New DataSet : Dim da As SqlDataAdapter : Dim str As String  
        Try
            str = "Select * from User_Table"
            If cn.State = ConnectionState.Closed Then cn.Open()
            cm = New SqlCommand(str, cn)
            da = New SqlDataAdapter(cm)
            da.Fill(ds)
            return ds
        Catch ex As SqlException
        Catch ex As Exception
        Finally
            If cn.State = ConnectionState.Open Then cn.Close()
        End Try
    End Function

End Class

在我的 Windows 窗体中,我编写了以下代码:

  Dim ws As New UserService.DataSetWebService()    

但它说“DataSetWebService() 未定义”

【问题讨论】:

  • 用户服务在哪里?也许您需要在用户服务中定义 dataService。
  • 我之前添加了一个服务引用,其中包含指向 Web 服务的链接,我将其命名为 UserService。它现在位于项目内的“服务引用”文件夹中。
  • @HelpASisterOut 更新服务引用并重新构建项目并尝试
  • 您是否尝试过调试、测试连接?
  • @Damith 成功了。那么我每次修改服务引用时都必须删除它,然后再添加它吗?谢谢。

标签: vb.net winforms web-services dataset asmx


【解决方案1】:

您需要将服务方法定义为共享。像这样

Public Shared Function GetUsers() As DataSet

然后“添加 Web 引用”到您的 Windows 应用程序。

希望它能解决您的问题。

【讨论】:

  • 它适用于该功能,但如果我想从 asmx 文件中调用一个 SUB,它是否有效?
  • 但是根据您发布的代码,您想返回数据集。如果你使用子程序,你不能返回任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多