我在寫一個存儲過程,該存儲過程執行多個連續的SELECT
語句。當我通過ADO.NET執行此過程時,我的意圖是以包含若干DataTable
對象的DataSet
結束。這表現如預期。爲SQL Server結果集中的表分配名稱
我目前依靠DataSet
中的表的順序來匹配存儲過程中的SELECT
語句的順序,但是在此順序中確實沒有任何意義。最終必須維護程序的人不必知道結果的預期順序,維護申請的人員也不必知道程序中陳述的順序。
我想知道的是,是否可以在存儲過程本身中爲每個SELECT
語句的結果指定名稱,然後通過ADO.NET(希望無縫地)通過這些名稱來訪問,以便我可以訪問每個表的名稱而不是其順序?
例如
// populate DataSet with results from stored proc
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
// now access one of the resulting DataTable via name
return ds.Tables["NamedResultFromTheProc"];
那麼,有什麼辦法可以達到這個目的嗎?或者我將不得不依賴SELECT
聲明的順序,並始終按索引訪問所需的表?
謝謝;你的建議在一定程度上有所幫助,雖然它不是理想的。至少這將負責處理與數據庫的任何錯誤,而不是客戶端應用程序。 – 2011-02-04 10:41:05