.net - Comment filtrer et combiner 2 jeux de données en C #

Translate

Je crée une page Web pour montrer à un client quel logiciel il a acheté et pour lui donner un lien pour télécharger ledit logiciel. Malheureusement, les données sur ce qui a été acheté et les informations de téléchargement sont dans des bases de données séparées, je ne peux donc pas m'en occuper avec des jointures dans une requête SQL.

L'élément commun est le SKU. Je vais extraire une liste de SKU de la base de données des achats des clients et sur le tableau de téléchargement se trouve une liste délimitée par des virgules des SKU associés à ce téléchargement. Mon intention, pour le moment, est de créer à partir de celui-ci datable pour peupler unGridView.

Toute suggestion sur la manière de procéder efficacement serait appréciée. Si cela aide, je peux facilement récupérer les données en tant queDataSetou unDataReader, si l'un ou l'autre serait mieux à cet effet.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Tant que les deux bases de données se trouvent sur le même serveur physique (en supposant MSSQL) et que le nom d'utilisateur / mot de passe utilisé dans la chaîne de connexion a des droits sur les deux bases de données, vous devriez pouvoir effectuer une jointure entre les deux bases de données. Exemple:

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
La source
Translate

Pourquoi ne pas créer une approche basée sur les objets de domaine pour résoudre ce problème:

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

Il existe un million de variations à ce sujet, mais une fois que vous avez agrégé ces informations, ne serait-il pas plus facile à présenter?

La source
Translate

Je pense du haut de ma tête ici. Si vous chargez les deux en tant que tables de données dans les mêmes ensembles de données et définissez une relation entre les deux sur SKU, puis exécutez une requête sur l'ensemble de données qui produit le résultat souhaité.

La source