Ik ben bezig met een projectje in Visual Studio 2005, VB.NET, framework 2.0.
Ik heb een dataset waarvan de gegevens door een sub als xml worden weggeschreven. Dat werkt prima. Met een andere sub laad ik de xml weer naar de dataset. Ook dat werkt.
Maar als ik de rijen uit een van de tabellen wil uitlezen en wil toewijzen aan een array, krijg ik een
foutmelding.
De dataset bevat twee tables:
1) Settings, altijd 1 row met 2 columns; SubDirs (boolean), SaveDirs(boolean)
2) Dirs, kan meerdere rijen van altijd 1 column bevatten; Dirname (string)
Het gaat fout op de tweede tabel.
Het gaat fout in de laatste loop waar ik een Public Array (SelectedDirectories as String) wil vullen
met de rijen (1 column) van de Table "Dirs" uit de Dataset "dsProgramSettings"
ik krijg de foutmelding "Object reference not set to an instance of an object."
in de IDE zie ik tijdens het Debuggen dat arrDirs is gevuld met het correcte aantal items, alleen zijn deze van het type {System.Data.Datarow}. Ik kan ook zien dat elke row weer een itemarray heeft die gevuld is met hetgeen ik wil hebben. Alleen ik krijg het niet voor elkaar.
Iemand enig idee ?
Ik heb een dataset waarvan de gegevens door een sub als xml worden weggeschreven. Dat werkt prima. Met een andere sub laad ik de xml weer naar de dataset. Ook dat werkt.
Maar als ik de rijen uit een van de tabellen wil uitlezen en wil toewijzen aan een array, krijg ik een
foutmelding.
De dataset bevat twee tables:
1) Settings, altijd 1 row met 2 columns; SubDirs (boolean), SaveDirs(boolean)
2) Dirs, kan meerdere rijen van altijd 1 column bevatten; Dirname (string)
Het gaat fout op de tweede tabel.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| Sub LoadSettings() Dim strFileName As String = My.Application.Info.Title & "Init.xml" 'Check if settingsfile exists If System.IO.File.Exists(My.Application.Info.DirectoryPath & "\" & strFileName) Then frmMain.dsProgramSettings.ReadXml(My.Application.Info.DirectoryPath & "\" & strFileName) Else UpdateStatus("Settings File not found!", Color.Yellow) Exit Sub End If 'Update settings table in dataset SubDirs = frmMain.dsProgramSettings.Tables("Settings").Rows(0).Item("SubDirs") SaveDirs = frmMain.dsProgramSettings.Tables("Settings").Rows(0).Item("SubDirs") 'Populate Dirs table with rows And update listbox on settings tab 'Dim rowDirs As DataRow = frmMain.dsProgramSettings.Tables("Dirs")..Rows() Dim arrDirs As Array = frmMain.dsProgramSettings.Tables("dirs").Select Dim dir As Short For dir = 0 To UBound(arrDirs) SelectedDirectories(dir) = arrDirs(dir).ToString frmMain.lstDirs.Items.Add(frmMain.dsProgramSettings.Tables("Dirs").Rows.Item(dir).ToString) Next End Sub |
Het gaat fout in de laatste loop waar ik een Public Array (SelectedDirectories as String) wil vullen
met de rijen (1 column) van de Table "Dirs" uit de Dataset "dsProgramSettings"
ik krijg de foutmelding "Object reference not set to an instance of an object."
in de IDE zie ik tijdens het Debuggen dat arrDirs is gevuld met het correcte aantal items, alleen zijn deze van het type {System.Data.Datarow}. Ik kan ook zien dat elke row weer een itemarray heeft die gevuld is met hetgeen ik wil hebben. Alleen ik krijg het niet voor elkaar.
Iemand enig idee ?
GamiQ, de game notes app met game maps!