webForumDet fria alternativet

Skapa DataRelation mellan datatables

.NET

4 svar · 179 visningar · startad av andreas_lindh

Medlem sedan jan. 20011 140 inlägg
Frågan#1

jag har 4 datatables som jag försöker skapa relationer mellan.

Dim dt As New DataTable()
        Dim dt1 As New DataTable()
        Dim dt2 As New DataTable()
        Dim dt3 As New DataTable()
        dt = objBusinessl.getPlayers(_serieID, _visa)
        dt1 = objBusinessl.getGoals(_serieID)
        dt2 = objBusinessl.getass1(_serieID)
        dt3 = objBusinessl.getass(_serieID)
        Dim ds As New DataSet()
        ds.Tables.Add(dt)
        ds.Tables.Add(dt1)
        ds.Tables.Add(dt2)
        ds.Tables.Add(dt3)
        Dim myDataRelation As DataRelation
        Dim parentColumn() As DataColumn
        Dim childColumn() As DataColumn
        parentColumn(0) = ds.Tables("dt").Columns(0)
        parentColumn(1) = ds.Tables("dt").Columns(0)
        parentColumn(2) = ds.Tables("dt").Columns(0)
        childColumn(0) = ds.Tables("dt1").Columns(1)
        childColumn(1) = ds.Tables("dt2").Columns(1)
        childColumn(2) = ds.Tables("dt3").Columns(1)
        Dim bConstraints As Boolean
        bConstraints = True
        myDataRelation = New DataRelation("parent2Child", parentColumn, childColumn, bConstraints)
        ds.Relations.Add(myDataRelation)

Får det här felemeddelandet

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 

Line 71:         Dim parentColumn() As DataColumn
Line 72:         Dim childColumn() As DataColumn
Line 73:         parentColumn(0) = ds.Tables("dt").Columns(0)
Line 74:         parentColumn(1) = ds.Tables("dt").Columns(0)
Line 75:         parentColumn(2) = ds.Tables("dt").Columns(0)
 

Source File: d:\inetpub\wwwroot\tibroik.net\showDPoints.aspx.vb    Line: 73

GetPlayers, getGoals, Getass och GetAss1 är funktioner som returnerar datatables.

Någon som vet vad som är fel?

Medlem sedan dec. 20003 887 inlägg
#2

Måste du inte instantiera först?

Dim parentColumn() As New DataColumn
Dim childColumn() As New DataColumn
Medlem sedan jan. 20011 140 inlägg
#3

Jag provade det men då står det att man inte kan använda new när man använder arrayer

Medlem sedan dec. 20003 887 inlägg
#4

Kan det vara att inte "dt" hittas? Jag chansar lite hejvilt här :)

parentColumn(0) = ds.Tables(0).Columns(0)
Medlem sedan jan. 20011 140 inlägg
#5

Har provat det också.

Det blir samma fel

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)