如何在C#中过滤和组合2个数据集

时间:2008-08-05 13:17:47

标签: c# .net

我正在构建一个网页,向客户展示他们购买的软件,并为他们提供下载所述软件的链接。不幸的是,关于购买的数据和下载信息的数据都在不同的数据库中,所以我不能只用SQL查询中的连接来处理它。

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

有关如何有效地执行此操作的任何建议将不胜感激。如果它有帮助,我可以很容易地将数据作为DataSetDataReader撤回,如果其中任何一个更好用于此目的。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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...          
        }
    }
}

这方面有一百万种变体,但是一旦汇总了这些信息,它会不会更容易呈现?

答案 2 :(得分:0)

我在这里想到了我的头脑。如果在同一数据集中同时加载数据表,并在SKU上定义两者之间的关系,然后在数据集上运行产生所需结果的查询。