2015-07-20 145 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

非常感謝,每個查詢都屬於該數據集,除非您始終創建一個最好的新查詢 –

相關問題