Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [.NET] Errore in INSERT INTO

    Sto realizzando un piccolo programmino di gestione clienti (una sorta di schedario/scadenziario) a scopo didattico per imparare l'utilizzo di VB.NET.

    Nel form inserimento clienti cliccando su "conferma" mi fa alcune verifiche e poi dovrebbe scrivermi il record nel db con il seguente codice:

    Private Sub btnConferma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConferma.Click
    Dim ctrl As Boolean
    Dim numero, valoreI, cmdResult As Integer
    Dim valore As String

    'Controllo sui dati
    ctrl = False
    If Len(Trim(Me.txtRagSoc.Text)) = 0 Then
    MessageBox.Show("Specificare la ragione sociale!!", "Controllo conformità", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    ctrl = True
    End If
    If Len(Trim(Me.txtIndir.Text)) = 0 Then
    MessageBox.Show("Specificare l'indirizzo!!", "Controllo conformità", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    ctrl = True
    End If
    numero = cmbAgente.SelectedIndex
    valore = cmbAgente.SelectedValue.ToString()

    If ctrl <> True Then
    Conn.Open()
    cmd.CommandText = "INSERT INTO Clienti (cli_ragSoc,cli_indirizzo,cli_localita,cli_pro,cli _cfpi,cli_tipPag,cli_note,cli_agente) VALUES " _
    & "('" & Trim(Me.txtRagSoc.Text) & "','" & Trim(Me.txtIndir.Text) & "','" & Trim(Me.txtLoca.Text) & "','" & Trim(Me.txtProv.Text) & "','" & Trim(Me.txtCfpi.Text) & "','" & Trim(Me.txtPaga.Text) & "','" & Trim(Me.txtNote.Text) & "'," & valore & ");"

    Try
    cmdResult = cmd.ExecuteNonQuery()
    Catch erore As Exception
    MessageBox.Show(erore.ToString() & " :::: " & cmdResult.ToString(), "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
    Conn.Close()
    End If

    End Sub

    Purtroppo mi si verifica sempre un errore che non riesco a capire!!
    cioè:



    Perchè mi dice "operatore mancante"??? Se con quella stringa sql creo una query in Access mi funziona tranquillamente!!

    Per favore datemi una mano che sto uscendo di testa!
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  2. #2
    puoi provare a non lasciare gli spazi prima delle parentesi "("... :master:
    codice:
    cmd.CommandText = "INSERT INTO Clienti(" & _
        "cli_ragSoc,cli_indirizzo,cli_localita,cli_pro," & _
        "cli_cfpi,cli_tipPag,cli_note,cli_agente) " & _ 
        "VALUES(" _ 
        "'" & Trim(Me.txtRagSoc.Text) & "'," & _
        "'" & Trim(Me.txtIndir.Text) & "'," & _
        "'" & Trim(Me.txtLoca.Text) & "'," & _
        "'" & Trim(Me.txtProv.Text) & "'," & _
        "'" & Trim(Me.txtCfpi.Text) & "'," & _
        "'" & Trim(Me.txtPaga.Text) & "'," & _
        "'" & Trim(Me.txtNote.Text) & "'," & valore & ");"

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    grazie questa sera provo e ti faccio sapere.

    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  4. #4
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    in genere quando io provo una query errata in access
    beh se c'è un errore access oltre a darmi un messaggio mi evidenzia
    anche la parte errata!

    di un po' da che parte ti evidenzia access?
    ovvio che dipende sempre dalla versione!

  5. #5
    Originariamente inviato da amodio
    in genere quando io provo una query errata in access
    beh se c'è un errore access oltre a darmi un messaggio mi evidenzia
    anche la parte errata!

    di un po' da che parte ti evidenzia access?
    ovvio che dipende sempre dalla versione!
    Ho ho access xp, ma il problema li non sussiste perche funziona! Per riuscire a debuggare meglio il codice ora ho messo la stringa sql in una textbox così posso copiarla ed incollarla in access. Però li mi viene eseguita senza problemi ed il record inserito con successo. Non riesco a capire perchè continua a darmi questo fantomatico "errore di sintassi". Non so + che pesci pigliare...
    Ho provato anche a fare come mi ha consigliato ladyblu ma senza aver successo.....

    Grazie a tutti

    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  6. #6
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Prova a togliere il ; alla fine... potrebbe essere quello, oppure a impostare la proprietà cmd.CommandType = CommandType.Text

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  7. #7

    Allucinante!

    Dunque sto cominciando a pensare che VB mi prenda in giro..

    Se io faccio così funziona!!!

    Me.txtNote.Text() = "INSERT INTO Clienti (cli_ragSoc,cli_indirizzo,cli_localita,cli_pro,cli _cfpi,cli_tipPag,cli_note,cli_agente) VALUES " _
    & "('" & Trim(Me.txtRagSoc.Text) & "','" & Trim(Me.txtIndir.Text) & "','" & Trim(Me.txtLoca.Text) & "','" & Trim(Me.txtProv.Text) & "','" & Trim(Me.txtCfpi.Text) & "','" & Trim(Me.txtPaga.Text) & "','" & Trim(Me.txtNote.Text) & "'," & valore & ");"

    cmd.CommandText = Me.txtNote.Text()

    Ma se tolgo Me.txtNote.Text() = e lo sostituisco con cmd.CommandText = mi da quell'errore!! Il bello è che la stringa sql è la stessa e non la tocco!! Cosa vuol dire? :master:

    @biste ho provato ma non cambia
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.