Amigos,
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!