Oppure

Loading
05/03/13 9:15
neriton
Salve a tutti voi.
Vi pongo il seguente problema. Sto creando un'applicazione che utilizza un database creato con mysql; è formata, al momento, da due form: nel primo vi è un datagrid che mostra tutti i dati inseriti, nel secondo ci sono due textbox dove inserisco i dati e un pulsante di inserimento dati. Una volta inseriti i dati vado nel form1 per vedere i dati inseriti ma nel datagrid non compare la tabella; solo uscendo dall'applicazione e rientrando si vedono i dati aggiornati. Perchè? Dove si trova il mio errore?
Vi ringrazio in anticipo per il vostro aiuto.
Neriton
Allego il codice dei due form
Imports MySql.Data.MySqlClient
Public Class Form1
Dim connetti As MySqlConnection
Dim comando As New MySqlCommand
Dim adatta As New MySqlDataAdapter
Dim archivio As New DataTable
Dim domanda As String
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
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
End Sub

Private Sub cmdVaiForm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVaiForm2.Click
Me.Hide()
Form2.Show()
End Sub
End Class

Imports MySql.Data.MySqlClient
Public Class Form2
Dim connetti As MySqlConnection
Dim comando As New MySqlCommand
Dim adatta As New MySqlDataAdapter
Dim archivio As New DataTable
Dim domanda As String
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Hide()
Form1.Show()
End Sub

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)
Form1.DataGridView1.DataSource = archivio
End Sub
End Class
aaa
05/03/13 11:41
Bonny
Pensaci bene è semplice ... cioè nel costruttore form1 esegue una query di select e ti fa visualizzare i record letti, form2 ad ogni evento click sul pulsante esegue una query di insert nel database , poi ti pare che il datagrid del form1 venga aggiornato?? A me non sembra:)

Dovresti aggiungere un pulsante al form1 per aggiornare il datagrid, ovvero eseguire la query select
aaa
05/03/13 15:40
neriton
Ti ringrazio Bonny,
ma ( se sto sbagliando dimmelo ) nel momento in cui inserisco un pulsante per aggiornare i dati, di volta in volta il programma aggiunge tutti i records, compresi i nuovi, ai record esistenti (es. i record n° 1,2,3,4 sono aggiunti ai recors n° 1 e 2 già esistenti. Come fare per evitare le ripetizioni?
perdona la mia "ignoranza".
Ti saluto
NERITON
aaa
05/03/13 17:52
Bonny
Non sono un esperto di .Net e non conosco i datagrid, ho guardato un pò in giro nel web e noto che viene usato anche il dataTable abbinato, quindi potresti svuotare il dataTable e riempirlo con il risultato della la nuova query di select (datatable.clear() -> cancella il contenuto)
aaa
06/03/13 9:41
neriton
Caro Bonny,
ho risolto il problema inserendo in un pulsante il seguente codice:
[DataGridView1.DataBindings.Clear()
DataGridView1.DataSource = Nothing
DataGridView1.DataMember = Nothing
DataGridView1.Rows.Clear()
DataGridView1.Refresh()
]
Spero di aver inserito bene il codice; se ho commesso qualche errore comunicatemelo.
Ti saluto
NERITON
aaa