Archief - [PROG][VB.NET] Inserten wil niet werken

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

paff_daddy

Legacy Member
hallo,

we zijn al enige tijd aan het proberen om via een invulformulier met textboxen een database in te vullen.(dus met het INSERT-commando).
Nu, het probleem is dus dat het niet wilt werken :p

Hier is de code:
Code:
Dim strpath As String = System.IO.Directory.GetCurrentDirectory &        "\jeugdvakanties.mdb"
Dim strVerbind As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=strpath;"
Dim cnVerbinding As New OleDbConnection(strVerbind)

cnVerbinding.Open()
Dim dsKlanten As New DataSet

Dim SqlStr As String = "INSERT INTO Klanten(klant-rijksregisternr,klant-naam,klant-voornaam,klant-adres,klant-postcode,klant-telefoonnummer,schoenmaat,lengte) VALUES(" & Val(txtRijksregisterNummer.Text) & ",'" & txtKlantNaam.Text & "','" & txtKlantVoornaam.Text & "','" & txtKlantAdres.Text & "','" & txtKlantPostcode.Text & "'," & Val(txtTelNr.Text) & "," & Val(txtKlantSchoenmaat.Text) & "," & Val(txtKlantLengte.Text) & ")"

Dim cmdOpdracht As New OleDb.OleDbCommand(SqlStr, cnVerbinding)
'Dim cmdOpdracht As New OleDb.OleDbCommand("INSERT INTO Klanten (klant-naam)values(txtKlantNaam.text)", cnVerbinding)
'daKlanten.InsertCommand(INSERT INTO Klanten(klant-naam)values(txtKlantNaam.text))
cmdOpdracht.ExecuteNonQuery()
Dim daKlanten As New System.Data.OleDb.OleDbDataAdapter(cmdOpdracht)
daKlanten.Fill(dsKlanten, "Klanten")
daKlanten.Update(dsKlanten, "Klanten")
cnVerbinding.Close()

Als ik op de button registreer klik, dan zou hij hetgeen in de tekstvakken staat in de database moeten wegschrijven, maar hij geeft deze foutmelding :

"An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll".

Iemand enig idee wat er fout kan zijn??

thx in advance,

paff_daddy

Hale

Legacy Member
:offtopic:

ik weet niet waarvoor je het exact nodig hebt, maar als het gaat draaien in een omgeving die je niet als veilig kan bestempelen ( lees : mensen die het wel leuk vinden om je database te verneuken zijn aanwezig ) zorg dan dat je je input deftig checkt op geldigheid. Nu ben je nl. nogal kwetsbaar voor sql injection attacks.

klennepette

Legacy Member
Dim strVerbind As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=strpath;"
Verander deze regel is in het volgende:
Dim strVerbind As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strpath & ";"

als je wil weten wat de exception is zet dan alles in
Try

Catch ex As OleDbException
messagebox.show(ex.message)
End Try

*edit: verander mss de eerste regel ook eens naar:
Dim strpath as string = application.startuppath & "\jeugdvakanties.mdb"

alva848

Legacy Member
Mag ik trouwens even opmerken dat, dit "vernederlandsen" van je variabelen het lezen van je code niet echt makkelijker maakt.

Er is niets mis met 'Connection' hoor. :)

paff_daddy

Legacy Member
thx voor de replies, maar we hebben het vandaag gevonden :).

En ivm dat "vernederlandsen" van variabelen, mja tis gewoon omdat we dat in de les ook zo gezien hebben :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan