Buongiorno a tutti voi,
vi pongo il seguente problema.
Ho creato un database con MySQL; il suo nome è RUBRICA e contiene una tabella
di nome TELEFONI, costituita da tre campi: ID, NOME e TELEFONO. Funziona
correttamente e, inserendo i comandi, si aggiorna regolarmente. Per gestire il
database all'esterno dell'ambiente MySQL, ho creato un'applicazione con Visual
basic 2010; In un primo form (Form1) ho inserito un datagridview e un pulsante
AGGIORNA che ha il compito di far vedere nel datagrid tutti i record. Il codice
di tale pulsante è il seguente:
Nel Form2 vi sono due caselle di testo per inserire nome e telefono e uncodice:Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click connetti = New MySqlConnection connetti.ConnectionString = "server = localhost;user id= root; password = 12345; database = rubrica" connetti.Open() domanda = "select * from telefoni;" comando.Connection = connetti comando.CommandText = domanda adatta.SelectCommand = comando adatta.Fill(archivio) DataGridView1.DataSource = archivio 'Procedura per aggiornare i dati e mostrare quelli inseriti per ultimi End Sub
pulsante per inserire i dati nella tabella; il codice di questo pulsante è:
L'applicazione esegue correttamente i comandi SQL ma c'è un problema:codice:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button1.Click connetti = New MySqlConnection connetti.ConnectionString = "server = localhost; user id = root; password = 12345;database = rubrica" connetti.Open() domanda = "insert into telefoni values (null,'" & TextBox1.Text & " ','" & TextBox2.Text & "');" comando.Connection = connetti comando.CommandText = domanda adatta.SelectCommand = comando adatta.Fill(archivio) End Sub
quando la tabella era vuota l'ho popolata inserendo in una sola seduta i
seguenti dati
ID NOME TELEFONO
1 franco 0022335566
2 sergio 1112222333
3 edik 555444789 ovviamente l'ID si aggiorna
automaticamente.
Quando ho cliccato sul tasto aggiorna del form1 sono usciti nel datagrid
esattamente i dati che si vedono.
successivamente ho inserito il seguente record:
4 simone 888777456
Quando ho cliccato sul pulsante aggiorna, nel datagrid sono apparsi i seguenti
record:
ID NOME TELEFONO
1 franco 0022335566
2 sergio 1112222333
3 edik 555444789
1 franco 0022335566
2 sergio 1112222333
3 edik 555444789
4 simone 888777456
Chiedo: perchè si ripetono i primi tre record? Mi sarei atteso invece la
seguente situazione
ID NOME TELEFONO
1 franco 0022335566
2 sergio 1112222333
3 edik 555444789
4 simone 888777456
Qual è il mio errore? Potreste
indicarmi la soluzione?
Vi ringrazio per l'attenzione![]()

Rispondi quotando