为什么我不能多次使用我的web服务?
问题描述:
当我第一次使用web服务(asmx)并返回DataTable
到我的aspx项目时,一切都很好。但是,如果我再次在该aspx上使用web服务,则以前的DataTable
对象完全为空。这是为什么?为什么我不能多次使用我的web服务?
这是我的web服务方法:
<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
答
它看起来像您使用的是全球DS对象 - 让你运行的情况下工作在相同的结果集上。
第一次执行它的功能时,没有其他人在ds中有任何结果,但下一次您已经有结果,但现在您的重置会丢失结果。
如果这是真的,你可以通过在函数内部创建ds来解决它,如果可能的话。
+0
非常感谢,每个查询都属于该数据集,除非您始终创建一个最好的新查询 –
您在发布的第一个代码块中出现语法错误(注意突出显示的颜色已混乱)。 – gunr2171