Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Inserire dati in db Access con VB.NET

    Ciao a tutti!
    Il mio problema è che non riesco a inserire i dati in un db access con visual basic.net. Questo è il codice che ho scritto

    'Dichiarazioni
    Dim conn As New OleDbConnection _
    ("Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\Users\Marco\Desktop\agenda.mdb" & ";" _
    & "Persist Security Info=False")
    conn.Open()
    Dim strIns As String = ""
    'Per eseguire l'insert
    strIns = "INSERT INTO tbTabelle(Tabella 1) " _
    & "VALUES(" & Me.RichTextBox1.Text & ")"
    Dim cmd As New OleDbCommand(strIns, conn)
    cmd.ExecuteNonQuery()
    cmd.Dispose()


    Mi da errore OledbException was unhandled. Errore di sintassi nell'istruzione Insert Into.
    Qualcuno di voi è cosi gentile da spiegarmi cosa devo corregere?
    Grazie mille!

  2. #2
    strIns = "INSERT INTO tbTabelle(Tabella 1) "


    se Tabella 1 è il nome di un campo deve essere fra parentesi quadre perchè ha uno spazio

    strIns = "INSERT INTO tbTabelle([Tabella 1]) "

  3. #3
    Ciao! Grazie per aver risposto...allora

    strIns = "INSERT INTO tbTabelle(Tabella 1) "

    Tabella 1 è il nome della tabella access in cui io vorrei che il programma mi inserisse i dati...

    Quindi la sintassi corretta sarebbe cosi?

    strIns = "INSERT INTO [Tabella 1] "

    Ciao e grazie per la pazienza...!

  4. #4
    sintassi

    INSERT INTO nometuatabella ( campo1, campo2, campo3 ) VALUES (valorecampo1, valorecampo2, valorecampo3)

    se campo1 campo2 o campo3 hanno spazi o possono essere fraintesi da access perchè sono anche parole chiavi allora devi metterli fra parentresi quadre (ad esempio il campo Note per access ha un altro significato quindi per intendere il TUO campo Note devi metterlo per forza fra quadre)

    la sintassi perfetta resta comunque quella con tutte parentesi quadre e la specifica della tabella

    INSERT INTO [nometuatabella] ( [nometuatabella].[campo1], [nometuatabella].[campo2], [nometuatabella].[campo3] ) VALUES (valorecampo1, valorecampo2, valorecampo3)


    p.s. cerca di evitare nomi sia di tabelle che di campi che contangano spazi

  5. #5
    Perfetto! Grazie mille! Spiegazione esauriente!
    Ancora una cosa vorrei sapere se è corretta questa sintassi

    & "VALUES(" & Me.RichTextBox1.Text & ")"

    Grazie ancora di tutto!


  6. #6
    se il campo sul DB è numerico allora è corretta altrimenti dovresti mettere delle singole apici prima e dopo

    & "VALUES('" & Me.RichTextBox1.Text & "')"


    o meglio ancora usare i parametri!

    strIns = "INSERT INTO Persona (Nome, Eta, CodiceFiscale) VALUES (@Nome, @Eta, @CodiceFiscale)"

    Dim cmd As New OleDbCommand(strIns, conn)

    cmd.Parameters.Clear()
    cmd.Parameters.Add(new OleDbParameter("@Nome", Me.RichTextBox1.Text))
    cmd.Parameters.Add(new OleDbParameter("@Eta", "44")) 'anche se stringa ci pensa OLEDB a conformarlo nel tipo di ETA sul DB
    cmd.Parameters.Add(new OleDbParameter("@CodiceFiscale", "ABCDEF12G34H567I"))

    cmd.ExecuteNonQuery()
    cmd.Dispose()

  7. #7
    Ok! Grazie mille di tutto!

    Ciao Ciao!

    Ho provato il codice:

    'Dichiarazioni
    Dim conn As New OleDbConnection _
    ("Provider=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\Users\Marco\Desktop\agenda.mdb" & ";" _
    & "Persist Security Info=False")
    conn.Open()
    Dim strIns As String = ""
    'Per eseguire l'insert
    strIns = "INSERT INTO [Tabella1] ([Tabella1].[Data], [Tabella1].[Ora_Inizio],[Tabella1].[Ora_Fine],[Tabella1].[Annotazioni]) " _
    & "VALUES('" & Me.DateTimePicker1.Text & "'," & Me.MaskedTextBox1.Text & "," & Me.MaskedTextBox2.Text & "," & Me.RichTextBox1.Text & ")"
    Dim cmd As New OleDbCommand(strIns, conn)
    cmd.ExecuteNonQuery()
    cmd.Dispose()

    cmd.ExecuteNonQuery() qui mi da questo tipo di errore: "Nessun valore specificato per alcuni tipi di parametro"
    Da cosa è dato questo errore?

  8. #8
    sono quasi sicuro che del datetimepicker devi prenedre la proprietà value invece che text, ma per sicurezza esegui il debug e controlla il valore di strIns dopo averla valorizzata

  9. #9
    Al posto di text ho messo Value

    "VALUES('" & Me.DateTimePicker1.Value &

    Ho fatto il debug ma mi da sempre lo stesso errore...

  10. #10
    scrivi qui il valore di strIns dopo che ha eseguito quella riga di codice

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.