System.IndexOutOfRangeException:
I tabel 1 har jeg to kolonner: En kolonne med ID og En kolonne med Navn.I tabel 2 har jeg et antal kolonner svarende til rækkerne i tabel 1.
Eksempel:
Tabel 1:
ID Navn
-------------
1 Navn 1
2 Navn 2
3 Navn 3
Tabel 2:
1 2 3 (bemærk her er kolonnenavne ID fra tabel1)
------------------------
værdi1 værdi2 værdi3
.... .... ....
.... .... ....
Ønsket resultat: Tabel 3
Navn 1 Navn 2 Navn 3
-----------------------------
værdi1 værdi 2 værdi3
.... .... ....
.... .... ....
Det er altså egentlig data fra tabel 2, jeg vil have vist, men med kolonneoverskrifter fra tabel 1.
Efter at have klippet og klistret har jeg fået følgende:
-------------------------------------------------------
Dim oConnection As Odbc.OdbcConnection = New Odbc.OdbcConnection(Application("ConnString"))
Dim OneCommand, TwoCommand As Odbc.OdbcCommand
Dim OneDataReader, TwoDataReader As Odbc.OdbcDataReader
Dim OneSQL As String = "SELECT * FROM Tabel1"
Dim TwoSQL As String = "SELECT * From Tabel2"
Dim OneArray(), TwoArray() As String
Dim F1, F2 As String
Dim T, U As Integer
oConnection.Open()
OneCommand = New Odbc.OdbcCommand(OneSQL, oConnection)
OneDataReader = OneCommand.ExecuteReader
While OneDataReader.Read()
F1 = F1 & " " & CStr(OneDataReader("ID")) & ";,,; "
F2 = F2 & " " & CStr(OneDataReader("Navn")) & ";,,; "
End While
oConnection.Close()
OneArray = Split(F1, ";,,;")
TwoArray = Split(F2, ";,,;")
Dim dt As New DataTable
For T = LBound(OneArray) To UBound(TwoArray)
'Create the columns
'Add the columns to the DataTable's Columns collection
dt.Columns.Add("" & OneArray(T) & "")
Next
oConnection.Open()
TwoCommand = New Odbc.OdbcCommand(TwoSQL, oConnection)
TwoDataReader = TwoCommand.ExecuteReader
Dim dr As DataRow
While TwoDataReader.Read()
dr = dt.NewRow()
For U = LBound(OneArray) To UBound(OneArray)
dr("" & OneArray(U) & "") = CStr(TwoDataReader("" & TwoArray(U) & ""))' HER GÅR DET STADIG GALT
Next
dt.Rows.Add(dr)
End While
oConnection.Close()
'Bind the DataTable to the DataGrid
dgPeople.DataSource = dt
dgPeople.DataBind()
-------------------------
Når jeg kører det, får jeg:
System.IndexOutOfRangeException: 1 i den linie, hvor jeg også har markeret, at det går galt. Jeg VED, at der i Tabel2 findes en kolonne, der hedder 1.
Erstatter jeg det med:
dr("" & OneArray(U) & "") = "test"
,får jeg en fin tabel - dog med "test i alle celler".
Nogen, der kan se, hvor det går galt?
/Plaf
