2015-07-20 114 views
-1

当我第一次使用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 
+0

您在发布的第一个代码块中出现语法错误(注意突出显示的颜色已混乱)。 – gunr2171

回答

1

它看起来像您使用的是全球DS对象 - 让你运行的情况下工作在相同的结果集上。

第一次执行它的功能时,没有其他人在ds中有任何结果,但下一次您已经有结果,但现在您的重置会丢失结果。

如果这是真的,你可以通过在函数内部创建ds来解决它,如果可能的话。

+0

非常感谢,每个查询都属于该数据集,除非您始终创建一个最好的新查询 –

相关问题