最好的做法是什么?我有一个表返回一组数据,另一个表返回另一组数据,所以在我的gridview中我要显示
id,name = dataset1 registration_id,registration_name = dataset2
答案 0 :(得分:2)
最好的办法是在从数据库中选择数据时使用JOIN。
如果那是不可能的,有几种方法可以使用内存中的DataTable对象来实现这一点......
这里概述了一种可能性:http://msmvps.com/blogs/shahed/archive/2009/02/09/asp-net-tips-display-resultset-from-multiple-datatable.aspx如果我绝对不能以我想要的格式直接从服务器上获取它,我通常会这样做。
您也可以使用Linq
执行此操作还可以在此处找到LINQ JOIN的示例:http://www.vbdotnetheaven.com/UploadFile/ShahanDev/4601/Default.aspx
修改 - 根据评论添加
根据您的评论,我不确定在gridview中加入结果是您想要的。在一对多关系中,您将从“一”方面获得重复。
如果我猜对了,你真正想要的是更准确地代表一对多关系的东西,而不是看起来像这样的数据:
id | name | reg_id | reg_name |
1 |abs | 1 |adad |
1 |abs | 2 |sadsd |
你真的希望它看起来像这样:
1 abs
1 adad
2 sadsd
在这种情况下,您最好先查看嵌套中继器:http://support.microsoft.com/kb/306154或其他表示神秘数据的方式。
答案 1 :(得分:0)
我认为除了所有优秀的previos方法之外,你还可以编写一个存储过程,其中包含你的逻辑(你可以使用临时表#table),使它成为网格视图数据源。我多次使用存储过程当我需要来自许多表的数据以避免复杂的连接和嵌套控件时,根据我的知识可能导致低性能。
如果你的意思是你对同一个网格视图使用两个数据源但是源根据某些条件而改变,这将有助于你...