当我第一次使用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
答案 0 :(得分:1)
看起来您正在使用全局ds对象 - 因此您的函数正在使用相同的结果集。
第一次执行它有效的功能时,没有其他人在ds中有任何结果,但是下次你已经有了结果但是现在你的重置会降低结果。
如果是这样,您可以通过在函数内部创建ds来修复它,如果可能的话。