Toon posts:

[VB.NET] Waardes toevoegen in database lukt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een knop en zodra er op gedrukt wordt moet hij het SQL commando uitvoeren en de waarde in de tabel zetten. Zodra ik nu op deze knop drukt zet hij er niks in. Ik heb op google enz al gezocht en heb er wel iets over kunnen vinden maar dat ging op dezelfde manier als dit.

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        Dim conn As New OleDb.OleDbConnection
        Dim strSQL As String

        conn.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=G:\Visual Basic Projects\Boekhoudprogramma\Boekhouding.mdb;"
        strSQL = "INSERT INTO tbl_klanten (klantnr,voornaam,achternaam ,telefoon_thuis,mobiel,email,website,rekeningnummer,korting_klant,opmerking) VALUES (" & _
        "'" & txtKlantnr.Text & "','" & txtVoornaam.Text & "','" & txtAchternaam.Text & "','" & txtTelThuis.Text & "','" & txtMobiel.Text & "','" & txtEmail.Text & "','" & _
        txtWebsite.Text & "','" & txtRekeningnr.Text & "','" & txtKortingKlant.Text & "','" & txtOpmerkingen.Text & "')"

        Dim cmm As New OleDb.OleDbCommand(strSQL, conn)
        conn.Open()
        Try
            cmm.ExecuteNonQuery()
        Catch ex As Exception
            ex.ToString()
        End Try
        conn.Close()

[ Voor 17% gewijzigd door Verwijderd op 07-10-2003 21:03 ]


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

gorgi_19

Kruimeltjes zijn weer op :9

Visual Basic .NET:
1
2
3
Catch ex As Exception
    Throw ex
End try

moet het worden. En verder moet conn.close in een Finally blok van de try-catch.

[ Voor 48% gewijzigd door gorgi_19 op 07-10-2003 21:15 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Deze error krijg ik nadat ik de dingen veranderd heb.

An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in Boekhouding.exe

Hiervoor heb ik ook op google gezocht en kwam ook daar dingen tegen maar nog staat daar niet een uitleg wat er fout is of hoe het opgelost kan worden.

ik heb ook even msgbox(strSQL) erbij gezet zodat te zien is wat hij van de SQL maakt. maar zover ik weet is die goed.

Afbeeldingslocatie: http://members.lycos.nl/nicolekidman/Michael/fout.jpg

  • marrik
  • Registratie: Augustus 2003
  • Laatst online: 01-07 11:55

marrik

Live long and prosper

Verwijderd schreef op 07 oktober 2003 @ 21:03:
Visual Basic .NET:
1
2
        Dim cmm As New OleDb.OleDbCommand(strSQL, conn)
        conn.Open()
Draai deze regels een om:

Visual Basic .NET:
1
2
        conn.Open()
        Dim cmm As New OleDb.OleDbCommand(strSQL, conn)


Ik dacht namelijk dat je eerst de connectie moest openen.

D'Mzz!
Marrik

Marrik


Verwijderd

Topicstarter
Ik heb ze omgedraaid maar krijg nog steeds dezelfde exception. Maar ik heb wel stukje dat hij uit database leest en daar was het idd ook omgedraaid. maar nog altijd gaat er iets fout bij de waardes in de database zetten.

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

gorgi_19

Kruimeltjes zijn weer op :9

Sowieso ben ik benieuwd wat er gebeurd als je in het opmerkingen veld
Deze klant komt af van Kees' oude werkgever
* gorgi_19 fluit onschuldig...

Ow ja, nog over je probleem.. MS Access snapt niet dat je '12' in een numeriek veld wil stoppen; '12' is voor Access namelijk tekst.

[ Voor 32% gewijzigd door gorgi_19 op 07-10-2003 21:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Surehand
  • Registratie: Februari 2003
  • Laatst online: 18-08 15:40
Kan het zijn dat je klantnummer een numeriek veld is, en dat je daar aan alfanumerieke waarde in probeert te zetten?

Verwijderd

Topicstarter
:D lol nog niet eens over nagedacht 8)7 daar zal hij idd ook de fout in gaan maar dat is nog wel op te lossen. Maar wat ik bij opmerkingen zet is zonder ' of " dus dat zou hij gewoon moeten slikken.

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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 07 October 2003 @ 21:55:
:D lol nog niet eens over nagedacht 8)7 daar zal hij idd ook de fout in gaan maar dat is nog wel op te lossen. Maar wat ik bij opmerkingen zet is zonder ' of " dus dat zou hij gewoon moeten slikken.
Never trust user input......

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
weet ik. maar ik ga er nu even vanuit dat de gene die dit invoert even een hele ideale user is die echt alles netjes typt en niet eens weet waar ' en " tekens staan :D
Dan zou hij het moeten slikken.

Over dat klantnummer. Dat is een autonummering veld. Maakt niet uit of ik hem weglaat uit de SQL statement of dat ik hem vul met een werkelijk getal. Alle keren geeft hij die fout.

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

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 07 October 2003 @ 22:06:
weet ik. maar ik ga er nu even vanuit dat de gene die dit invoert even een hele ideale user is die echt alles netjes typt en niet eens weet waar ' en " tekens staan :D
Dan zou hij het moeten slikken.

Over dat klantnummer. Dat is een autonummering veld. Maakt niet uit of ik hem weglaat uit de SQL statement of dat ik hem vul met een werkelijk getal. Alle keren geeft hij die fout.
Ik heb geen idee of dat het enige numerieke veld is?

Lijkt me nu een kwestie van debuggen; stukje bij beetje een veld toevoegen.
Voer je SQL Statement anders eens uit bij de Query Builder van MS Access.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
korting is ook numeriek maar ik zal alles eens stukje bij beetje erbij doen.. kijken waar hij fout gaat.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Het identity (autonummer) veld mag je niet opnemen in je INSERT query.
Gebruik parameters ipv string concatenation

Welke precieze exception krijg je?

https://fgheysels.github.io/


Verwijderd

Topicstarter
An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in Boekhouding.exe

deze exception krijg ik. Maar het probleem is al opgelost. er zaten paar fouten in de query.

Thnx voor de hulp iedereen. :D :D

[ Voor 4% gewijzigd door Verwijderd op 08-10-2003 09:29 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Zou je dan misschien ook willlen aangeven welke fouten er in je query zaten? Is wel nuttig voor de search ;)

Ikzelf gok op gequote waardes in numerieke velden.... :X

My personal website


Verwijderd

Topicstarter
idd die geqoute waardes waren fout en klantnr moest niet voorkomen in de query.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Gebruik maken van parametrized queries lost al dat geneuzel met die quotes op.

https://fgheysels.github.io/


Verwijderd

Topicstarter
das wel beter. Zal het eens proberen .. thnx voor de hint.

[ Voor 22% gewijzigd door Verwijderd op 08-10-2003 09:35 ]


Verwijderd

Topicstarter
whoami schreef op 08 October 2003 @ 09:33:
Gebruik maken van parametrized queries lost al dat geneuzel met die quotes op.
Ik heb het geprobeerd op die manier en het werkt fantastisch. Je hebt geen last meer van tekens waar die op zou kunnen struikelen zoals: '
en het is ook vrij simpel om te begrijpen.. thnx

voor de mensen die ook willen weten hoe het moet

http://www.dotnetbips.com/displayarticle.aspx?id=197

hier staat een uitleg met voorbeeldcode

[ Voor 19% gewijzigd door Verwijderd op 10-10-2003 09:17 ]

Pagina: 1