Multiple Key Relations

  • Thread starter Thread starter Randy Fraser
  • Start date Start date
R

Randy Fraser

How do I create a relationship on muliple columns in an untyped dataset.

Why does this not work.

da.Fill(ds)
ds.Tables(0).TableName = "DesignSummary"
ds.Tables(1).TableName = "FormulaSummary"
ds.Tables(2).TableName = "MaterialSummary"
ds.Tables(3).TableName = "ItemUsage"
ds.Tables(5).TableName = "UsageSummary"
Dim dcDesignSummaryKey As DataColumn() =
{ds.Tables(0).Columns("WorkOrderID"), ds.Tables(0).Columns("DesignID"),
ds.Tables(0).Columns("MachineCode")}
Dim dcFormulaSummaryKey As DataColumn() =
{ds.Tables(1).Columns("WorkOrderID"), ds.Tables(1).Columns("DesignID"),
ds.Tables(1).Columns("MachineCode")}
Dim dcMaterialSummaryKey As DataColumn() =
{ds.Tables(2).Columns("WorkOrderID"), ds.Tables(2).Columns("DesignID"),
ds.Tables(2).Columns("MachineCode")}
Dim dcItemUsageSummaryKey As DataColumn() =
{ds.Tables(3).Columns("WorkOrderID"), ds.Tables(3).Columns("DesignID"),
ds.Tables(3).Columns("MachineCode")}
ds.Relations.Add("DesignFormulaRelation", dcDesignSummaryKey,
dcFormulaSummaryKey, False)
ds.Relations.Add("DesignMaterialRelation", dcDesignSummaryKey,
dcMaterialSummaryKey, False)
ds.Relations.Add("DesignItemUseageRelation", dcDesignSummaryKey,
dcItemUsageSummaryKey, False)


Best Regards
Randy
 
You may have better luck if you individually fill each table - I could
never get the "multi fill" thing to work to begin with.

the following worked for me with trees nested 3 nodes deep...

Dim sql As String
Dim DSRptSetup As DataSet

sql = ya
Dim DAReportNames As New SqlClient.SqlDataAdapter(sql, SqlConn)

sql = yadd
Dim DAReportLineItems As New SqlClient.SqlDataAdapter(sql,
SqlConn)

sql = yadda
Dim DALineItemAccounts As New SqlClient.SqlDataAdapter(sql,
SqlConn)

DSRptSetup = New DataSet

DAReportNames.Fill(DSRptSetup, "dtReportNames")
DAReportLineItems.Fill(DSRptSetup, "dtLineItems")
DALineItemAccounts.Fill(DSRptSetup, "dtLineItemAccounts")


Dim dcLINEITEMSummaryKey As DataColumn() =
{DSRptSetup.Tables("dtLineItems").Columns("rptCntnt_id"),
DSRptSetup.Tables("dtLineItems").Columns("rptNames_id")}

Dim dcACCOUNTSummaryKey As DataColumn() =
{DSRptSetup.Tables("dtLineItemAccounts").Columns("rptCntnt_id"),
DSRptSetup.Tables("dtLineItemAccounts").Columns("rptNames_id")}



DSRptSetup.Relations.Add("RptToLineItem",
DSRptSetup.Tables("dtReportNames").Columns("rptNames_id"),
DSRptSetup.Tables("dtLineItems").Columns("rptNames_id"))


DSRptSetup.Relations.Add("LineItemToAccnts",
dcLINEITEMSummaryKey, dcACCOUNTSummaryKey, False)


then fill trees...
 
Back
Top