C# 到GridView数据源的多个绑定
我试图将三个查询绑定到GridView数据源。据我所知,不能将多个查询绑定到GridView数据源,这是真的吗?如果是这样,您将如何处理多个查询并将它们绑定到一个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
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窗体
数据绑定模型。这意味着数据源可以是
实现以下接口之一:
您可能更希望绑定一个
数据集
,然后如果所有查询都属于同一类型,那么您可以在将它们绑定到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