为什么我不能多次使用我的网络服务?

时间:2015-07-20 17:34:57

标签: asp.net vb.net web-services

当我第一次使用webservice(asmx)并将DataTable返回到我的aspx项目时,一切正常。但是,如果我在同一个aspx上再次使用webservice,则前一个DataTable对象完全为空。那是为什么?

这是我的网络服务方法:

<WebMethod()> _
public Function QueryGeneralText() As DataTable

    ds.Reset()
    com.Parameters.Clear()
    com.CommandText = queryString
    com.CommandType = select booksID from Books"
    com.Connection = con

    conectarBD()
    da = New SqlDataAdapter(com)
    da.Fill(ds)
    con.Close()

    Return ds.Tables(0)
End Function

在aspx.vb部分:

Public Sub CreateDatatable()
  Dim example1 As DataTable = ws.QueryGeneralText() ' RETURNS DATA
  Dim example2 As DataTable = ws.QueryGeneralText() ' RETURNS DATA, BUT EXAMPLE ITS EMPTY
End Sub

1 个答案:

答案 0 :(得分:1)

看起来您正在使用全局ds对象 - 因此您的函数正在使用相同的结果集。

第一次执行它有效的功能时,没有其他人在ds中有任何结果,但是下次你已经有了结果但是现在你的重置会降低结果。

如果是这样,您可以通过在函数内部创建ds来修复它,如果可能的话。