我正在构建一个网页,向客户展示他们购买的软件,并为他们提供下载所述软件的链接。不幸的是,有关购买内容和下载信息的数据位于不同的数据库中,因此我无法仅通过 SQL 查询中的联接来处理它。

常见的商品是SKU。我将从客户购买数据库中提取 SKU 列表,下载表上是与该下载相关的逗号分隔的 SKU 列表。目前,我的意图是从这个数据表创建来填充 GridView.

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

没有正确的解决方案

其他提示

只要两个数据库位于同一物理服务器上(假设为 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

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

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

这方面有上百万种变体,但是一旦您汇总了这些信息,呈现起来不是更容易吗?

我在这里胡思乱想。如果您将两者作为数据表加载到同一数据集中,并通过 SKU 定义两者之间的关系,然后对数据集运行查询,从而生成所需的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top