Toon posts:

[.NET Compact Framework VB] XML Openen

Pagina: 1
Acties:
  • 544 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig een app aan het maken in het compact framework voor mijn PDA.
De bedoeling is dat de database van Access gesycroniseerd moet worden met deze van mijn PDA. Dit zou ik doen via xml (als er betere oplossingen bestaan zou ik deze graag weten ;) )
Hierbij heb ik een voorbeeld gevonden op het internet. Deze code heb ik deels overgenomen. Ik kan mooi mijn database opslaan op mijn pda in xml-formaat maar wanneer ik deze wil openen zegt hij dat hij het xml-bestand niet kan terugvinden. Dus het opslaan in een bepaalde directory gaat maar het openen blijkbaar niet. Hetzelfde voorbeeld heb ik eens geprobeerd in C# in dit lukt dan weer wel. Omdat ik meer kennis heb in VB zou ik het graag houden in VB.

Code om XML opteslaan:
code:
1
2
3
4
5
6
7
8
9
10
Dim fileName As String = "\Program Files\Touch-Go PDA\Techniekers.xml"
If Not File.Exists(fileName) Then
       MessageBox.Show(fileName + " does not exist")
       Return
End If
Dim fs As FileStream = New FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write)
Dim xtw As XmlTextWriter = New XmlTextWriter(fs, System.Text.Encoding.Unicode)
dsTechniekers.WriteXml(xtw, System.Data.XmlWriteMode.WriteSchema)
'the dataset has written the data   
xtw.Close()

Dit werkt dus maar wanneer ik die xml bestand wilt openen kan hij het bestand niet vinden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim fileName As String = "\Program Files\Touch-Go PDA\Techniekers.xml"
If Not File.Exists(fileName) Then
            MessageBox.Show(fileName + " does not exist")
            Return
End If
Dim fs As FileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read)
Dim xtr As XmlTextReader = New XmlTextReader(fs)
dsTechniekers.Reset()
dsTechniekers.ReadXml(xtr, System.Data.XmlReadMode.ReadSchema)
xtr.Close()
Dim dr As DataRow
Dim it As ListViewItem
For Each dr In dsTechniekers.Tables("tblTechnieker").Rows
     it = New ListViewItem(dr("id").ToString())
     it.SubItems.Add(dr("TechId").ToString())
     it.SubItems.Add(dr("TechNaam").ToString())
     ComboBox1.Items.Add(it)
Next

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:44

gorgi_19

Kruimeltjes zijn weer op :9

Moet je geen schijfaanduiding oid geven?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op woensdag 30 maart 2005 @ 10:15:
Moet je geen schijfaanduiding oid geven?
Op een PDA moet je toch geen schijfaanduiding geven?

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 08-05 18:07
Weet je zeker dat er wel in de juiste directory word gekeken ?
En zo ja, plaats je het bestand wel in de juist dir ?

The best thing about UDP jokes is that I don't care if you get them or not.


Verwijderd

Topicstarter
Remc0 schreef op woensdag 30 maart 2005 @ 10:32:
Weet je zeker dat er wel in de juiste directory word gekeken ?
En zo ja, plaats je het bestand wel in de juist dir ?
Blijkbaar lijkt het nu toch te werken. Soms vindt hij het bestand en soms weer niet. Ik denk wanneer je device emulator gebruikt dat hij het xml niet meer onthoud van de vorige keer.
Dus dat je telkens eerst moet op save drukken en dat dan xml openen zal lukken.
Bedankt voor de hulp

Verwijderd

Topicstarter
Nu dat het lukt om xml opteslaan en te openen zit ik met het probleem om de gegevens op te halen in een combobox. Ik heb al verschillende property's uitgeprobeerd van een DataTable of moeten de gegevens uit de dataset gehaald worden?


Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim dsTechniekers As DataSet
Dim fileName As String = "\Program Files\Touch-Go PDA\Techniekers.xml"
If Not File.Exists(fileName) Then
     MessageBox.Show(fileName + " does not exist")
     Return
End If
Dim fs As FileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read)
Dim xtr As XmlTextReader = New XmlTextReader(fs)
dsTechniekers.Reset()
dsTechniekers.ReadXml(xtr, System.Data.XmlReadMode.ReadSchema)
xtr.Close()
Dim tablesCol As DataTableCollection = dsTechniekers.Tables
Dim dtTechniekers As DataTable = tablesCol("tblTechnieker")
ComboBox1.DataSource = dtTechniekers.Columns.Item("TechNaam")

[ Voor 4% gewijzigd door Verwijderd op 30-03-2005 12:37 ]


Verwijderd

Topicstarter
Na een eindje zoeken is dit de oplossing

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim fileName As String = "\Program Files\Touch-Go PDA\Techniekers.xml"
If Not File.Exists(fileName) Then
      MessageBox.Show(fileName + " does not exist")
      Return
End If
Dim fs As FileStream = New FileStream(fileName, FileMode.Open, FileAccess.Read)
Dim xtr As XmlTextReader = New XmlTextReader(fs)
dsTechniekers.Reset()
dsTechniekers.ReadXml(xtr, System.Data.XmlReadMode.ReadSchema)
xtr.Close()
Dim tablesCol As DataTableCollection = dsTechniekers.Tables
Dim dtTechniekers As DataTable = tablesCol("tblTechnieker")
Dim drNewTechnieker As DataRow
Dim i As Int16
Do Until i = dtTechniekers.Rows.Count
      drNewTechnieker = dtTechniekers.Rows.Item(i)
      ComboBox1.Items.Add(drNewTechnieker.Item(1))
      i = i + 1
Loop

  • Remco
  • Registratie: Januari 2001
  • Laatst online: 08-05 18:07
Kijk, dat is handig.
Even de uiteindelijke oplossing posten, zodat iedereen in de toekomst er nog wat aan heeft.

The best thing about UDP jokes is that I don't care if you get them or not.

Pagina: 1