1
在我的頁面上,我在一個屏幕上有多個組合/下拉菜單,所有組合/下拉菜單都從SQL中加載數據。例如,如果有20個組合,則20個時間數據庫將被調用以在一個請求中獲取數據。有沒有辦法在一次SQL命中中獲得所有組合數據?在一次打擊中獲取來自sql server的所有組合值
在我的頁面上,我在一個屏幕上有多個組合/下拉菜單,所有組合/下拉菜單都從SQL中加載數據。例如,如果有20個組合,則20個時間數據庫將被調用以在一個請求中獲取數據。有沒有辦法在一次SQL命中中獲得所有組合數據?在一次打擊中獲取來自sql server的所有組合值
Atually可以從存儲過程(我說的是MS SQL)
喜歡的東西
create procedure SampleDataSetResult
as
begin
select * from table1
select * from table2
end
那麼這可以食用像
返回兩個(或更多)數據表var command = new SqlCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "SampleDataSetResult";
using (SqlDataAdapter da = new SqlDataAdapter(command))
{
DataSet dataset = new DataSet();
da.Fill(dataset);
// here you can use dataset tables
}
但是這種方法適用於數據庫的原始數據。它還包含沒有要分析名稱的數據表。唯一的辦法是在SP和源代碼之間同步數據表索引,並根據索引處理這些可數據表。像dataset.Tables[0]
- 被視爲組合數據1等。這可能會很棘手,所有SP修改必須與源代碼同步。 在一頁上也有20個組合,聽起來有點奇怪。我猜想會顯示組合數據依賴於前一個組合中選擇的數據。
我看不出有什麼理由保存SQL查詢。如果你有網頁,那麼你可以嘗試使用MVC方法並用視圖模型方法調用包裝數據庫調用。
在我看來,你應該只能得到每個組合的選定值和文本,並且在一個查詢中很容易。這足以填寫表單,但如果您嘗試編輯表單,那麼您可以根據請求獲取每個組合的值(如單擊,關注組合等),並在此時填充它。 – Arkadiusz
請回顧[如何創建一個最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve)並修改您的問題。 – jhenderson2099
我認爲在單個查詢中獲得20個組合框的數據是相當具有挑戰性的。查詢本身不是什麼大不了的事,但接下來呢?您將不得不將所有數據拆分到每個組合框。這聽起來對我來說不是一個好計劃。如果您擔心性能問題,則可以隨時緩存組合框的數據,以避免被迫重複提取相同的數據。但同時,填充組合框的查詢應該非常簡單快捷。 –