Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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# 到GridView数据源的多个绑定_C# - Fatal编程技术网

C# 到GridView数据源的多个绑定

C# 到GridView数据源的多个绑定,c#,C#,我试图将三个查询绑定到GridView数据源。据我所知,不能将多个查询绑定到GridView数据源,这是真的吗?如果是这样,您将如何处理多个查询并将它们绑定到一个GridView。例如: var query1 = select * from table 1 var query2 = select * from table 2 var query3 = select * from table 3 GridView.DataSource = query1; GridView.DataSource

我试图将三个查询绑定到GridView数据源。据我所知,不能将多个查询绑定到GridView数据源,这是真的吗?如果是这样,您将如何处理多个查询并将它们绑定到一个GridView。例如:

var query1 = select * from table 1
var query2 = select * from table 2
var query3 = select * from table 3


GridView.DataSource = query1;
GridView.DataSource = query2;
GridView.DataSource  = query3;
这基本上就是我想做的,但从我所能发现的来看,这是可能的。有没有一个好的方法来做这样的事情?谢谢

因此,基本上我有多个查询,我需要所有查询的特定结果才能进入一个GridView。

from

DataGridView类支持标准Windows窗体 数据绑定模型。这意味着数据源可以是 实现以下接口之一:

  • IList接口,包括一维数组
  • IListSource接口,如DataTable和DataSet 上课
  • IBindingList接口,例如BindingList类
  • IBindingListView接口,例如BindingSource类

  • 您可能更希望绑定一个
    数据集
    ,然后

    如果所有查询都属于同一类型,那么您可以在将它们绑定到gridview之前将它们合并到一个集合中:

    var aggregateQuery = query1.Concat(query2).Concat(query3);
    GridView.DataSource = aggregateQuery;
    

    如果查询不是同一类型的,那么您要么需要做一些事情将它们转换为单个公共模式(我们需要了解更多信息以提供详细信息),要么需要有3个单独的网格视图,并且每个查询只绑定一个视图。

    没错,您不能进行多绑定

    但是,您可以连接查询以将所有记录引入单个数据表,然后绑定到该数据表


    假设
    所有这些表都具有相同的结构?如果然后使用UNION尝试一个查询以返回所有数据,那么您希望实现什么?您想要查询的连接还是它的连接或其他什么?不同的结构。基本上我有多个查询,我需要所有查询的特定结果才能进入一个GridView。
    
            DataSourceSelectArguments dss = new DataSourceSelectArguments();
            SqlDataSource sds = (SqlDataSource)YourControl.FindControl("your datasource control");
            if (sds != null)
            {
                DataView dv = (DataView)sds.Select(DataSourceSelectArguments.Empty);
                if (dv != null)
                {
                    DataTable dt = (DataTable)dv.ToTable();
                    if (dt != null)
                    {
                      myGridView.DataSource = dt;
                      myGridView.DataSourceID = null; //won't be needed
                      myGridView.DataBind();
    etc