2008-08-05 12 views
6

Ich baue eine Webseite, um einem Kunden zu zeigen, welche Software er gekauft hat, und um ihm einen Link zum Herunterladen dieser Software zu geben. Leider befinden sich die Daten über das, was gekauft wurde, und die Download-Informationen in getrennten Datenbanken, so dass ich mich nicht nur mit Joins in einer SQL-Abfrage darum kümmern kann.So filtern und kombinieren Sie 2 Datensätze in C#

Der allgemeine Artikel ist SKU. Ich werde eine Liste von SKUs aus der Datenbank für Kundeneinkäufe ziehen, und in der Download-Tabelle ist eine Liste der mit diesem Download verknüpften SKUs aufgeführt. Meine Absicht ist im Moment, aus dieser einen Datentabelle eine GridView zu erstellen.

Alle Vorschläge, wie dies effizient zu tun wäre, würden geschätzt. Wenn es hilft, kann ich ziemlich einfach die Daten als DataSet oder DataReader zurückziehen, wenn einer für diesen Zweck besser wäre.

+1

War die Absicht, "gelöscht" oder "abgegrenzt" zu schreiben, da das wahrscheinlichste Letzteres zu sein scheint, aber vielleicht gibt es einen bestimmten Sinn, in dem Sie das Wort meinen? –

+0

Danke für den Fang. Es wurde behoben! – saalon

+1

Kein Problem. Hätte direkt editiert aber wollte sichergehen, was du meintest bevor ich es versaut habe. –

Antwort

0

Ich denke hier von ganz oben. Wenn Sie beides als Datentabellen in denselben Datensätzen laden und eine Beziehung zwischen den beiden über SKU definieren, führen Sie anschließend eine Abfrage für den Datensatz aus, der das gewünschte Ergebnis liefert.

2

Solange sich die beiden Datenbanken auf demselben physischen Server befinden (vorausgesetzt, dass MSSQL verwendet wird) und der in der Verbindungszeichenfolge verwendete Benutzername/Kennwort beide DBs besitzt, sollten Sie einen Join zwischen den beiden Datenbanken durchführen können . Beispiel:

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

Warum nicht einen Domain-Objekt basierten Ansatz für dieses Problem:

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

eine Million Variationen dies Es gibt, aber wenn Sie diese Angaben zusammenfassen, wäre es nicht einfacher sein, Geschenk?

Verwandte Themen