2008-08-05 57 views
6

我正在构建一个网页,向客户展示他们购买了哪些软件,并为他们提供了下载所述软件的链接。不幸的是,关于购买内容和下载信息的数据在单独的数据库中,所以我不能仅仅使用SQL查询中的连接来处理它。如何过滤和组合C#中的2个数据集

常见的项目是SKU。我将从客户购买数据库中提取SKU列表,并在下载表中列出与该下载相关的SKU的逗号分隔列表。目前我的意图是从这个数据表创建一个GridView

有关如何有效地做到这一点的任何建议,将不胜感激。如果有帮助,我可以很容易地将数据作为DataSetDataReader进行回退,如果其中任何一个更适合此目的。

+1

是否有意将“删除”或“划定”写成最有可能是后者的字词,但也许可能有一个特定的含义,在这个意义上,你的意思是这个词? – 2016-03-24 00:10:42

回答

0

我在想我的头顶。如果在相同的数据集中加载两个数据表,并通过SKU定义两者之间的关系,然后在产生所需结果的数据集上运行查询。

2

只要两个数据库位于同一个物理服务器上(假定为MSSQL)并且连接字符串中使用的用户名/密码对这两个数据库都有权限,那么您应该可以跨两个数据库执行连接。例如:

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 
2

为什么不创建一个基于域对象的方法解决这个问题:

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...   
     } 
    } 
} 

上有此一百万的变化,但一旦你汇总这些信息,那岂不是更容易当下?