簡體   English   中英

使用T-SQL返回多個結果集

[英]Return more than one result set with T-SQL

我試圖使用.NET模仿SQL Server Management Studio的查詢分析器部分的功能。 用戶將輸入一個SQL腳本,程序將運行它。 如果它返回結果集,程序會將其加載到數據網格中並向用戶顯示。

我的問題是:有沒有辦法從單個腳本返回多個結果集? 我知道查詢分析器運行它並加載多個數據網格,如果返回了幾個結果集,但據我所知,當您嘗試使用SqlDataAdapter.Fill(...)時,它只返回腳本中的最后一個結果集。

這將向您展示如何返回多個結果集: http//vb.net-informations.com/ado.net-dataproviders/ado.net-multiple-result-sets.htm

使用sqlReader.NextResult()方法遍歷不同的結果集。 然后,您可以使用sqlReader.Read()來獲取該結果集中的每個單獨記錄。

您可以調用SqlDataAdapter.Fill傳入DataSet。 每個查詢結果將填充DataSet中的表:

當指定的查詢返回多個結果時,返回查詢的每個行的結果集將放在一個單獨的表中。 通過將整數值附加到指定的表名稱來命名其他結果集(例如,“Table”,“Table1”,“Table2”等)。

我想我可能已經弄明白了。 有時寫出問題有助於你更好地理解它,然后新的想法開始彈出:)

我一直在使用SqlDataAdapter.Fill(...)方法來填充DataTable。 事實證明,如果填充空數據集,它將自動為返回的每個結果集創建一個表。 因此,我可以手頭有一些隱藏的數據網格,當程序檢測到填充的DataSet有多個表時,我只需要使用DataSet中每個DataTable的數據加載每個數據網格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM