2008-08-05 11 views
6

私は、購入したソフトウェアを顧客に提示し、そのソフトウェアをダウンロードするためのリンクをWebページに作成します。残念ながら、購入したデータとダウンロード情報は別々のデータベースに格納されているため、SQLクエリで結合するだけでは処理できません。Cで2つのデータセットをフィルタリングして結合する方法

共通項目はSKUです。私は顧客購入データベースからSKUのリストを取得し、ダウンロードテーブルにはそのダウンロードに関連するSKUのカンマ区切りリストがあります。私の意図は、現時点では、GridViewを設定するためにこの1つのデータテーブルから作成することです。

これを効率的に行う方法に関するご意見をお待ちしております。役に立つ場合は、DataSetまたはDataReaderというデータを、この目的に適していれば、簡単に取り戻すことができます。

+1

「削除された」または「描写された」と書くのは後者である可能性が最も高いと思われましたが、特定の意味があるかもしれませんか? –

+0

キャッチをありがとう。修正されました! – saalon

+1

問題ありません。直接編集しただろうが、私はそれを乱した前にあなたが意味するものを確認したかった。 –

答えて

0

私はここで私の頭の上から考えています。両方を同じデータセット内のデータテーブルとしてロードし、SKU上の2つのリレーションを定義し、目的の結果を生成するデータセットに対してクエリを実行するとします。

2

2つのデータベースが同じ物理サーバー(MSSQLを前提としています)にあり、接続文字列で使用されているユーザー名/パスワードが両方のDBに対する権限を持っている限り、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...   
     } 
    } 
} 

をしていますが、この情報を集約したら、それはする方が簡単ではないでしょう。

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

は、なぜこの問題にドメインオブジェクトベースのアプローチを作成しませんプレゼント?

関連する問題