Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一次性从sql server获取所有组合值_C#_Sql Server_Asp.net Mvc - Fatal编程技术网

C# 一次性从sql server获取所有组合值

C# 一次性从sql server获取所有组合值,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,在我的页面上,我在一个屏幕上有多个组合/下拉菜单,所有组合/下拉菜单都是从SQL加载数据。例如,若有20个combo,那个么将调用20个时间数据库来获取一个请求中的数据。有没有办法在一次SQL命中中获取所有组合数据?通常可以从存储过程返回两个(或更多)数据表(我说的是MS SQL) 差不多 create procedure SampleDataSetResult as begin select * from table1 select * from table2 end 然后可以像这样消费

在我的页面上,我在一个屏幕上有多个组合/下拉菜单,所有组合/下拉菜单都是从SQL加载数据。例如,若有20个combo,那个么将调用20个时间数据库来获取一个请求中的数据。有没有办法在一次SQL命中中获取所有组合数据?

通常可以从存储过程返回两个(或更多)数据表(我说的是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和源代码之间的datatable索引,并根据其索引处理此datatable数据。如
数据集。表[0]
-被视为组合数据1等。这可能很棘手,所有SP修改都必须与源代码同步。 在一个页面上有20个组合听起来有点奇怪。我假设将要显示的组合数据取决于在上一个组合中选择的数据


我看不出有任何理由现在就为您保存SQL查询。若您有一个web页面,那个么您可以尝试使用MVC方法并用视图模型方法调用包装数据库调用

在我看来,对于每个组合,您应该只获得选定的值和文本,而且一次查询很容易。这足以填写表单,但如果您尝试编辑表单,以便您可以根据请求获取每个组合的值(如单击、关注组合等),并在此时填写。请检查并修改您的问题。我认为在一次查询中获得20个组合框的数据将是一个相当具有挑战性的问题。这个问题本身也没什么大不了的,但那又怎么样呢?您必须将所有数据拆分到每个组合框中。对我来说,这听起来根本不是一个好计划。如果您担心性能,您可以始终缓存组合框的数据,以避免被迫重复提取相同的数据。但同时,填充组合框的查询应该非常简单和快速