Tengo dos tablas, la tabla Categories y la tabla Productos. Necesito hacer una especie de inner join teniendo como referencia la columna CategoryID .
Como soy medio bruto con ASPX pero bueno con Photoshop, dejo una imagen que ilustra exactamente mi problema:
Este es el website que lo hice con la base northwind.mdb para que sea mas facil
Descargar ejemplo
y este es mi codigo
Código:
<%@ Page Language="VB" AutoEventWireup="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script language="VB" runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim MyConn1 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data/Northwind.mdb")) Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Categories", MyConn1) Dim ds As DataSet = New DataSet() Dim dtExcel As New DataTable MyConn1.Open() da.Fill(ds) da.Fill(dtExcel) grvExcelData.DataSource = ds.Tables(0) grvExcelData.DataBind() MyConn1.Close() Dim MyConn2 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data/Northwind.mdb")) Dim da2 As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Products", MyConn2) Dim ds2 As DataSet = New DataSet() Dim dtDB As New DataTable MyConn2.Open() da2.Fill(ds2) da2.Fill(dtDB) grvDB.DataSource = ds2.Tables(0) grvDB.DataBind() Dim dtNew As DataTable = New DataTable dtNew.Columns.Add("CategoryID") dtNew.Columns.Add("CategoryName") dtNew.Columns.Add("QuantityPerUnit") Dim i As Integer = 0 Do While (i < dtExcel.Rows.Count) If dtExcel.Rows(i)("CategoryID") IsNot Nothing Then Dim drNew = dtNew.NewRow() drNew("CategoryID") = dtExcel.Rows(i)("CategoryID").ToString drNew("CategoryName") = dtExcel.Rows(i)("CategoryName").ToString drNew("QuantityPerUnit") = dtDB.Select(("CategoryID=" & dtExcel.Rows(i)("CategoryID")))(0)("QuantityPerUnit").ToString dtNew.Rows.Add(drNew) End If i = (i + 1) Loop grvGridData.DataSource = dtNew.DefaultView grvGridData.DataBind() End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblDisplay" Runat="Server" Text="Hello!" /> <asp:GridView ID="grvExcelData" runat="server" AutoGenerateColumns="true" Visible="true"> </asp:GridView> <asp:GridView ID="grvGridData" runat="server" AutoGenerateColumns="true" Visible="true" > </asp:GridView> <asp:GridView ID="grvDB" runat="server" AutoGenerateColumns="true" Visible="true"> </asp:GridView> </div> </form> </body> </html>
muchas gracias a quien me pueda ayudar!