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

    Errore codice in Vb.net

    stavo provando ad inserire alcuni dati in un db access con un programmino che sto tentando di fare...il problema è che quando inserisco nell'indice un valore uguale ad un altro precedente...ad esempio nel record 1 nell'indice c'è 10/07/2008 e nel secondo vorrei mettere di nuovo 10/07/2008
    mi da questo errore:" L'apporto modifiche non è riuscito perché si è cercato di duplicare i valori nell'indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati"

    Il codice scritto per inserire i dati è questo:

    '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 (Data,OraInizio,OraFine,Annotazioni) " _
    & "VALUES(#" & Me.Data.Value & "#,'" & Me.MaskedTextBox1.Text & "','" & Me.MaskedTextBox2.Text & "','" & Me.RichTextBox1.Text & "')"
    Dim cmd As New OleDbCommand(strIns, conn)
    cmd.ExecuteNonQuery()
    cmd.Dispose()


  2. #2
    Leggiti il regolamento
    L'errore te lo da perché il campo Data(nome che, peraltro, non puoi utilizzare per un campo, dovrebbe essere una parola chiave in ACCESS, se non ricordo male) lo hai creato come chiave primaria che non può essere duplicata. Quindi o elimini il vincolo della chiave primaria su quel campo oppure crei un altro campo dove inserisci la data.

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: Errore codice in Vb.net

    Originariamente inviato da marco14
    mi da questo errore:" L'apporto modifiche non è riuscito perché si è cercato di duplicare i valori nell'indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati"

    Il codice scritto per inserire i dati è questo:

    '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 (Data,OraInizio,OraFine,Annotazioni) " _
    & "VALUES(#" & Me.Data.Value & "#,'" & Me.MaskedTextBox1.Text & "','" & Me.MaskedTextBox2.Text & "','" & Me.RichTextBox1.Text & "')"
    Dim cmd As New OleDbCommand(strIns, conn)
    cmd.ExecuteNonQuery()
    cmd.Dispose()

    Mi pare di averlo già visto da qualche parte, 'sto codice...

    Comunque, il problema deriva dal fatto che nella tua tabella1 hai impostato il campo Data come Chiave Primaria, e nel tuo caso è stata una pessima idea, perchè in questo modo l'indice non consente duplicati.
    Io ti consiglio di:
    - aprire il database con Access
    - apri la tabella in "Visualizzazione struttura"
    - nella tabella aggiungi un campo ID, e lo imposti di tipo Contatore.
    - dal campo Data togli l'attributo ChiavePrimaria
    - assegni la Chiave Primaria al nuovo campo ID.

    Vedrai che non avrai più problemi, e ti consiglio di farlo con tutte le tabelle del tuo DB.
    Non sarebbe male che tu dessi un nome significativo alla tua tabella, perchè Tabella1 non è proprio azzeccato.

    Ciao

  4. #4
    Va bene! Grazie a entrambi per la spiegazioni!
    Lo so che i nomi non vanno bene ma è un programma di prova...giusto per imparare comunque grazie dei consigli!


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.