Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
[VB.NET] Aggiornare una griglia dopo un ADD
venerdì 08 febbraio 2008 - 05.46
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
marco.santilli
Profilo
| Junior Member
139
messaggi | Data Invio:
ven 8 feb 2008 - 05:46
Popolo una griglia con i dati di una tabella
Poi aggiungo un record a quella tabella
Come faccio ad aggiornare la tabella in modo da far visualizzare il nuovo record???
Ciao e grazieeeeee
----------------------------------------------------------------
DS = New DataSet()
command = New OleDb.OleDbCommand("SELECT * FROM [DvdStorico] order by Titolo", Conn)
adapter = New OleDb.OleDbDataAdapter(command)
adapter.Fill(DS)
Me.GridEX.DataSource = DS.Tables(0)
--------------------------------------------------------------------
Private Sub btnNuovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuovo.Click
Dim command As New OleDb.OleDbCommand
command = New OleDbCommand("INSERT INTO DvdStorico (Titolo,NCD) VALUES(?,?)", Conn)
command.Parameters.Add("@Titolo", OleDbType.Char, 50).Value = Me.txtTitolo.Text
command.Parameters.Add("@NCD", OleDbType.Char, 50).Value = Me.txtNCD.Text
command.ExecuteNonQuery()
End Sub
--------------------------------------------------------------------
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 8 feb 2008 - 06:14
>Popolo una griglia con i dati di una tabella
>
>Poi aggiungo un record a quella tabella
>
>Come faccio ad aggiornare la tabella in modo da far visualizzare
>il nuovo record???
>
>Ciao e grazieeeeee
>
>
>----------------------------------------------------------------
>DS = New DataSet()
>command = New OleDb.OleDbCommand("SELECT * FROM [DvdStorico]
>order by Titolo", Conn)
> adapter = New OleDb.OleDbDataAdapter(command)
> adapter.Fill(DS)
>
> Me.GridEX.DataSource = DS.Tables(0)
>--------------------------------------------------------------------
>
>Private Sub btnNuovo_Click(ByVal sender As System.Object, ByVal
>e As System.EventArgs) Handles btnNuovo.Click
> Dim command As New OleDb.OleDbCommand
>
>command = New OleDbCommand("INSERT INTO DvdStorico (Titolo,NCD)
>VALUES(?,?)", Conn)
>
>command.Parameters.Add("@Titolo", OleDbType.Char, 50).Value =
>Me.txtTitolo.Text
>command.Parameters.Add("@NCD", OleDbType.Char, 50).Value = Me.txtNCD.Text
> command.ExecuteNonQuery()
>
>
>
> End Sub
>--------------------------------------------------------------------
nel tuo caso, hai collegato al tuo DataGridView un Dataset che altro non è che una 'copia lato client' della tua tabella fisica. Ciò significa che le modifiche che tu apporti al database fisico non si riperquotono sul dataset e viceversa eventuali modifiche al DataSet e quindi al contenuto del DataGrid non si riperquotono direttamente sul database fisico fino a quando non esegui il metodo Update del DataAdapter.
Detto questo ti consiglierei, anzichè eseguire una query di inserimento sulla tabella fisica come hai fatto sopra, di aggiungere il record
direttamente al DataSet (Il tuo datagrid si aggiornerà automaticamente di conseguenza).
Quando deciderai di sincronizzare il Database fisico allora dovrai eseguire il metodo Update dell'oggetto DataAdapter utilizzato per il popolamento del DataSet.
Se hai bisogno di ulteriori chiarimenti sono a disposizione.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
marco.santilli
Profilo
| Junior Member
139
messaggi | Data Invio:
ven 8 feb 2008 - 08:13
Ok....ottimo
Non l'ho mai fatto
Potresti farmi un esempio, cosi provo ad adattarlo????
Ciao e grazieeeeee
P.S.= Scusa del disturbo
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 8 feb 2008 - 10:54
Cerco di sintetizzare la procedura:
1. Crei il DataSet popolandolo con i dati provenienti dalla Tabella del DataBase (come avevi già fatto tu):
DS = New DataSet()
command = New OleDb.OleDbCommand("SELECT * FROM [DvdStorico]
order by Titolo", Conn)
adapter = New OleDb.OleDbDataAdapter(command)
adapter.Fill(DS)
Me.GridEX.DataSource = DS.Tables(0)
2. Se devi aggiungere un record al tuo DataSet fai così:
Dim CurRow As DataRow = DbDbase.SqlDS.Tables(0).Rows.Add()
CurRow.Item("Colonna1") = Valore1
CurRow.Item("Colonna2") = Valore2
...
CurRow.EndEdit
Vedrai che il tuo DataGrid si aggiorna automaticamente
3. Per salvare le modifiche
adapter.Update(DS, "NomeTabella")
Spero ti sia tutto chiaro, se hai bisogno di ulteriori chiarimenti sono a disposizione.
Ciao
Alessandro
P.S.: Potrebbe esserti utile, sul mio blog (link qui sotto), trovi una classe per la gestione degli accessi al database semplificata.
http://blogs.dotnethell.it/alebadalin
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !