2008-08-05 17 views
6

Estoy creando una página web para mostrarle a un cliente qué software compró y darles un enlace para descargar dicho software. Desafortunadamente, los datos sobre lo que se compró y la información de descarga se encuentran en bases de datos separadas, por lo que no puedo ocuparme de ellos con combinaciones en una consulta SQL.Cómo filtrar y combinar 2 conjuntos de datos en C#

El artículo común es SKU. Voy a sacar una lista de SKU de la base de datos de compras de clientes y en la tabla de descargas hay una lista delineada por comas de los SKU asociados con esa descarga. Mi intención, en este momento, es crear desde esta datatable para llenar un GridView.

Cualquier sugerencia sobre cómo hacer esto de manera eficiente sería muy útil. Si esto ayuda, puedo fácilmente recuperar los datos como DataSet o DataReader, si cualquiera de ellos sería mejor para este propósito.

+1

¿Estaba la intención de escribir "borrado" o "delineado", ya que lo más probable parece ser lo último, pero puede haber un sentido específico en el que se refiera a la palabra? –

+0

Gracias por la captura. ¡Ha sido arreglado! – saalon

+1

No hay problema. Habría editado directamente pero quería asegurarme de lo que quería decir antes de meterse con él. –

Respuesta

0

Estoy pensando en la parte superior de mi cabeza aquí. Si carga ambos como tablas de datos en los mismos conjuntos de datos, y define una relación entre los dos sobre SKU, y luego ejecuta una consulta en el conjunto de datos que produce el resultado deseado.

2

Siempre que las dos bases de datos estén en el mismo servidor físico (asumiendo MSSQL) y el nombre de usuario/contraseña que se utiliza en la cadena de conexión tiene derechos para ambas bases de datos, podrá realizar una combinación en ambas bases de datos . Ejemplo:

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

por qué no crear un enfoque basado en objetos de dominio a este problema:

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

Hay un millón de variaciones sobre esto, pero una vez que agregar esta información, ¿no sería más fácil ¿presente?

Cuestiones relacionadas