Toon posts:

[VB.NET/ADO.NET] Record inserten lukt niet*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers,

Ben bezig met het fabriceren van een Windows Applicatie in Visual Basic .NET.

Op een Windows Form heb ik een aantal comboboxen en textvelden.
Een aantal van deze boxen en velden worden doormiddel van een ADO.NET gevuld vanuit een access database. (OLEDB Connection --> OLEDB Data Adapter --> Dataset).

Vroeger (in vb6) werd dit gedaan doormiddel van een recordsource en recordset.

Nu wil ik ook ingevoerde data in een tabel in de database plaatsen via een ADO.NET methode. (In VB6 ging dit ook dmv een recordsource en recordset)

Volgens mijn ADO.NET boek zou dat op de volgende manier moeten geschieden:

code:
1
2
3
4
5
6
7
8
9
10
11
'Vullen van datasets doormiddel van de OLDDB Adapater
Private Sub FRM_Desktops_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        DATASET_Departments.Clear()
        DATASET_Hardware.Clear()
        DATASET_Parts.Clear()
        DATASET_Troubles.Clear()

        OLEDB_Departments.Fill(DATASET_Departments)
        OLEDB_Hardware.Fill(DATASET_Hardware)
        OLEDB_Parts.Fill(DATASET_Parts)


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'Updaten van de dataset
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim drNew As System.Data.DataRow

        drNew = Me.DATASET_Troubles.Troubles.NewRow()
        drNew.Item("Brand") = COMBO_Brand
        drNew.Item("Model") = COMBO_Model
        drNew.Item("Serialnumber") = TXT_Serialnumber
        Me.DATASET_Troubles.Troubles.Rows.Add(drNew)

'Updaten van de datasource (access db)
        Me.OLEDB_Troubles.Update(Me.DATASET_Troubles.Troubles)

        MessageBox.Show("Finished", "Update")
End Sub


Als ik deze code run dan 'fietst' hij er vrolijk doorheen , geeft de melding dat de update Finished is en dat er geen fouten zijn ontstaan. Echter als ik dan in de database kijk is er wel een row toegevoegd echter zijn er geen correcte waarden ingevuld in de velden.

De volgende waarden kom ik tegen:

Waarde kolom "Brand": System.Windows.Forms.ComboBox, Items.Count: 2
Waarde kolom "Model": System.Windows.Forms.ComboBox, Items.Count: 2
Waarde kolom "Serialnumber": System.Windows.Forms.TextBox, Text: 1V9CL897

Weet iemand misschien wat ik hier fout doe?
Kan iemand mij uitleggen / toelichten hoe dit in VB.NET moet.
In VB6 was dit een eitje maar in VB.NET kom ik er niet echt uit.... :'(

[ Voor 5% gewijzigd door Verwijderd op 20-10-2003 22:47 . Reden: code tags toegevoegd ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
OLEDB_Troubles is een dataadapter mag ik aannemen?
Heb je een Update , Select, INSERT, en DELETE command gedefinieerd aan die data-adapter?

Owja, zet je code ook eens tussen [code]-tags, dat maakt het geheel heel wat leesbaarder.

Owja, het gaat fout omdat je aan je DataRow de comboboxen enzo toevoegd, en niet de geselecteerde waarden in die combobox.

Als je doet :
code:
1
MessageBox.Show(ComboBox1.ToString())

dan zal je dezelfde waarden tezien krijgen als die die geinserted zijn in je db.

Je zult dus dit moeten doen:
code:
1
2
myDataRow["veldnaam"] = ComboBox1.Text;
myDataRow["veldnaam"] = TextBox1.Text;

bv.
en dus niet:
code:
1
myDataRow["veldnaam"] = Combobox1;


code is in C#

Owja, verzien in het vervolg ook ff een titel die wat beter past.
VB.NET + ADO.NET + Access is nu niet echt veelzeggend.... Ik heb 'm maar ff voor jou aangepast.

[ Voor 68% gewijzigd door whoami op 20-10-2003 22:27 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Er zijn tal van VB / C# websites, maar is er ook een website waar duidelijke en veel informatie kan vinden over hoe je gegevens uit een combox, list, textfield haalt etc... (en dan bedoel ik een andere dan MSDN)....

[ Voor 44% gewijzigd door Verwijderd op 20-10-2003 22:50 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Verwijderd schreef op 20 October 2003 @ 22:46:
Je zegt zelf terecht dat de code in C#(Sharp) is, weet je toevallig ook hoe deze code in VB is.
't Is toch maar een kleine moeite om dat zelf uit te zoeken? :?
P&W is hier om mensen te helpen, maar niet om oplossingen voor te kauwen. Wat leer je er anders van?
Kijk eens goed naar de code, en bemerk het verschil.
Je moet de geselecteerde text in je datarow toevoegen.
Is er misschien ook een goede website waar ik informatie kan vinden over hoe je gegevens uit een combox, list, textfield haal... (en dan bedoel ik een andere dan MSDN)....
Waarschijnlijk wel. :P.
Echter, wat is er mis met MSDN? Alles wat je wilt weten, vind je erin terug.

[ Voor 8% gewijzigd door whoami op 20-10-2003 22:50 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ik heb het gevonden.. het werkt nu ... Thanx.... whoami

En er is in princiepe niets mis met MSDN ... echter is het soms nog weleens overweldigend en kan je door de bomen het bos niet meer zien.....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 20 October 2003 @ 22:51:
Ik heb het gevonden.. het werkt nu ... Thanx.... whoami

En er is in princiepe niets mis met MSDN ... echter is het soms nog weleens overweldigend en kan je door de bomen het bos niet meer zien.....
Er zijn ook nog tig van andere sites die ook eea uitleggen, behalve MSDN. Denk hierbij aan ASPAlliance, ASP.Net, etc. Ook worden een aantal artikelen gepubliceerd op MSDN Magazine. MSDN is idd vrij lastig om door te lezen, aangezien alleen de 'definities' er staan; af en toe wat schrale codevoorbeelden.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1