如何在C#中过滤和合并2个数据集
时间:2020-03-05 18:37:44 来源:igfitidea点击:
我正在建立一个网页,向客户显示他们购买了什么软件,并为他们提供了下载所说软件的链接。不幸的是,有关购买商品的数据和下载信息位于单独的数据库中,因此我不能仅通过SQL查询中的联接来处理它。
常见项目是SKU。我将从客户购买数据库中提取SKU列表,并在下载表上以逗号分隔的列表列出与该下载相关的SKU。目前,我的意图是根据该数据表创建一个" GridView"。
任何有关如何有效地做到这一点的建议,将不胜感激。如果有帮助的话,我可以很容易地将数据作为" DataSet"或者" DataReader"拉回,如果这两种方法中的任何一种都更好。
解决方案
回答
我在想我的头顶。如果将这两个都作为数据表加载到相同的数据集中,并且通过SKU定义了两者之间的关系,然后在数据集上运行查询以产生所需的结果。
回答
只要两个数据库都位于同一台物理服务器上(假设为MSSQL),并且连接字符串中使用的用户名/密码对两个DB都具有权限,那么我们应该能够在两个数据库之间执行联接。例子:
select p.Date, p.Amount, d.SoftwareName, d.DownloadLink from PurchaseDB.dbo.Purchases as p join ProductDB.dbo.Products as d on d.sku = p.sku where p.UserID = 12345
回答
为什么不创建基于Domain对象的方法来解决此问题:
public class CustomerDownloadInfo { private string sku; private readonly ICustomer customer; public CustomerDownloadInfo(ICustomer Customer){ customer = Customer; } public void AttachSku(string Sku){ sku = Sku; } public string Sku{ get { return sku; } } public string Link{ get{ // etc... etc... } } }
对此有上百万种变体,但是一旦汇总了这些信息,呈现起来就容易了吗?