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:
codice:
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
Nel Form2 vi sono due caselle di testo per inserire nome e telefono e un
pulsante per inserire i dati nella tabella; il codice di questo pulsante è:
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
L'applicazione esegue correttamente i comandi SQL ma c'è un problema:
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