1. #1
    JasonC's Avatar
    Registered
    26/03/09
    Location
    Kanto
    Posts
    5,015
    iTrader
    29 (100%)
    Mentioned
    0 Post(s)

    SQL Syntax error in vb.net

    Ik ben bezig met een programma te schrijven, met een database connectie waar je simpelweg gegevens kan toevoegen, bekijken, verwijderen en wijzigen. Ik gebruik daarvoor een acces(2003) database .mdb
    Ik doe mijn data acces in aparte klassen.
    In mijn klassen "Klanten" heb ik dus een sub om nieuwe klanten toe te voegen:
    Code:
    Dim connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & My.Settings.connstring & "'"
    Dim comm As New OleDb.OleDbCommand
    Dim dr As OleDb.OleDbDataReader
    
    
    Public Sub saveklant()
    
    Dim conn As New OleDb.OleDbConnection(connstring)
    
           conn.Open()
    
            comm.Connection = conn
            comm.CommandText = "INSERT INTO tbl_klanten (aanspreking, naam, voornaam, bedrijf, maatschappelijke_zetel, gsm, e-mail_adres, gebruiker) VALUES ('" & _aanspreking & "','" & _naam & "','" & _voornaam & "','" & _bedrijf & "','" & _zetel & "','" & _GSM & "','" & _email & "', '" & _gebruiker & "')"
            comm.ExecuteNonQuery()
    
            conn.Close()
    
        End Sub
    Die property's zyn boven aangemaakt.
    De code van mijn form om de gegevens toe te voegen:
    Code:
    Private Sub btnsaveclient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsaveclient.Click
    
    
    Dim k As New Klanten
    
    k.aanspreking = cboAanspreking.Text
    k.naam = txtnaam.Text
    k.voornaam = txtvoornaam.Text
    k.bedrijf = txtbedrijf.Text
    k.zetel = txtzetel.Text
    k.GSM = txtgsm.Text
    k.email = txtemail.Text
    k.gebruiker = My.Settings.ingelogd
     k.saveklant()
    MsgBox("U hebt een nieuwe klant aangemaakt: " & k.aanspreking & " " & k.naam & " " & k.voornaam & "", MessageBoxIcon.Information, "Taskbuddy - Klant aangemaakt")
     Me.Close()
    End Sub
    Nu krijg ik elke keer als ik run, de gegevens invul en op de button klik een syntax error: "De instructie INSERT bevat een syntaxisfout."
    Ik heb eindeloos zitten nakijken naar de namen van mijn tabel en van mijn kollommen, naar haakjes, aanhaaltekens, maar ik heb niets gevonden, dit zou moeten werken maar dat doet het niet. :S
    Is er iemand die me hiermee kan helpen?
    Last edited by JasonC; 21-04-2010 at 21:19.
    no votes  

  2. #2
    Parnakra's Avatar
    Registered
    15/04/04
    Location
    Izegem
    Posts
    6,095
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    no votes  

  3. #3
    JasonC's Avatar
    Registered
    26/03/09
    Location
    Kanto
    Posts
    5,015
    iTrader
    29 (100%)
    Mentioned
    0 Post(s)
    Bedankt, maar ik heb geen tutorials nodig, ik heb al genoeg met sql gewerkt, normaal zou ik die error zelf vinden, maar ik heb alles tientallen keren herbekeken, nix gevonden, anders zou ik het niet hier hebben gepost
    no votes  

  4. #4
    Parnakra's Avatar
    Registered
    15/04/04
    Location
    Izegem
    Posts
    6,095
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Oh, als je al genoeg met SQL gewerkt hebt, zal je code wel immuun zijn voor SQL injection.

    Wat je probleem betreft, ik gok dat
    Code:
    k.gebruiker = My.Settings.ingelogd
    een boolean is en je die dus op een andere manier in je query zal moeten zetten. Maar dat zal je ongetwijfeld zelf kunnen.
    no votes  

  5. #5
    JasonC's Avatar
    Registered
    26/03/09
    Location
    Kanto
    Posts
    5,015
    iTrader
    29 (100%)
    Mentioned
    0 Post(s)
    nee, das geen boolean, das een string van diegene die ingelogd is, kheb da stukske al zelfs van even in comment gezet, hetzelfde resultaat :S
    no votes  

  6. #6
    JasonC's Avatar
    Registered
    26/03/09
    Location
    Kanto
    Posts
    5,015
    iTrader
    29 (100%)
    Mentioned
    0 Post(s)
    Quote Originally Posted by Parnakra View Post
    This quote is hidden because you are ignoring this member. Show
    Oh, als je al genoeg met SQL gewerkt hebt, zal je code wel immuun zijn voor SQL injection.
    sorry als hetmisschien leek da ik een dikke nek had ofzo, maar het is egt een irritante error, kheb al zo'n twee uur zitten zoeken wat het kan zijn, kheb vanalles geprobeerd, aan anderen laten zien, en zonder resultaat, en dat voor zo'n poepsimpel sql commandje. please bare with me, je kan me wel begrijpen, niet?
    no votes  

  7. #7
    pietje666's Avatar
    Registered
    18/12/07
    Location
    Wijnegem
    Posts
    1,158
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/5
    kweet niet hoe de syntax van acces is maar bij mysql / postgres moet er na de tabelnaam nog values tussenkomen anders krijgde een syntax error

    dus comm.CommandText = "INSERT INTO tbl_klanten values(aanspreking, naam, voornaam, bedrijf, maatschappelijke_zetel, gsm, e-mail_adres, gebruiker) VALUES ('" & _aanspreking & "','" & _naam & "','" & _voornaam & "','" & _bedrijf & "','" & _zetel & "','" & _GSM & "','" & _email & "', '" & _gebruiker & "')"


    edit: nvm lekker fout gezien :/
    Last edited by pietje666; 22-04-2010 at 15:24.
    no votes  

  8. #8
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    Doe eens een quickwatch op die comm.CommandText
    en run die sql dan eens direct in access

    zit misschiens een crappy character zoals "'" in 1 van die strings
    no votes  

  9. #9
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Gebruik idd gewoon parameters:

    - Query zal overzichtelijker zijn om te lezen waardoor je fouten snel ziet (in dit geval dus duidelijk niet).
    - De query zal ook steeds veilig uitgevoerd kunnen worden (in dit geval dus ook duidelijk niet zo).
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  10. #10
    JasonC's Avatar
    Registered
    26/03/09
    Location
    Kanto
    Posts
    5,015
    iTrader
    29 (100%)
    Mentioned
    0 Post(s)
    Quote Originally Posted by Moto View Post
    This quote is hidden because you are ignoring this member. Show
    Doe eens een quickwatch op die comm.CommandText
    en run die sql dan eens direct in access

    zit misschiens een crappy character zoals "'" in 1 van die strings
    Quote Originally Posted by Cycloon View Post
    This quote is hidden because you are ignoring this member. Show
    Gebruik idd gewoon parameters:

    - Query zal overzichtelijker zijn om te lezen waardoor je fouten snel ziet (in dit geval dus duidelijk niet).
    - De query zal ook steeds veilig uitgevoerd kunnen worden (in dit geval dus ook duidelijk niet zo).
    Had ik al allemaal gedaan. Er was niets verkeerd met de code, visual studio deed al efkes raar bij mij, dus heb ik het opnieuw geïnstalleerd, dan lukt ineens alles wel... Tzal wel een "computerlijk" foutje zijn geweest
    Toch bedankt voor alle reacties!
    no votes  

  11. #11

    Registered
    09/04/10
    Location
    hasselt
    Posts
    810
    iTrader
    15 (100%)
    Mentioned
    0 Post(s)
    waarom schrijft ge nu niemeer alles met uw vervelende y in plaats van ij?
    no votes  

  12. #12
    JasonC's Avatar
    Registered
    26/03/09
    Location
    Kanto
    Posts
    5,015
    iTrader
    29 (100%)
    Mentioned
    0 Post(s)
    waarom zoekt gij geen leve ipv mij de hele tijd int oog te houde, isda geen goei idee?
    btw @ admins: hier mag een slotje op, voordat die kinderachtige ruziestoker zijn zin krijgt.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in