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
.NET Framework
Aggiornamento database
martedì 18 marzo 2008 - 08.11
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
xxxgiacomoxxx
Profilo
| Newbie
14
messaggi | Data Invio:
mar 18 mar 2008 - 08:11
Salve, sto cominciando a fare i primi passi nel mondo della programmazione di piccoli gestionali.
Mi sto creando una applicazione per gestire le mie finanze in VB.NET.
nelle mie prime prove, ho inserito all'interno di un form un datagridview per la visualizzazione dei dati di una tabella mysql, a fianco ho inserito un tasto "inserisci" per effettuare un inserimento di un nuovo record da un nuovo form.
Inserendo i dati, quando clicco sul mio tasto di add il datagrid non mi viene aggiornato, però so che l'inserimento è andato a buon fine, perchè se riavvio l'applicazione il nuovo record c'è.
Come faccio ad intercetare l'evento di modifica del dataset???Qualcuno può chiarirmi questo dilemma???
Grazie anticipatamente.
speedx
Profilo
| Junior Member
111
messaggi | Data Invio:
mar 18 mar 2008 - 09:03
Ciao, ti do una risposta un po' generica non vedendo il codice...
Da quello che ho capito inserisci direttamente nel DB. il data table non si aggiorna direttamente ma devi rifare il ricaricamento della tabella. Non so come hai agganciato la tabella ai dati ma potrebbe esserti utile la funzione di Binding.
//// Marcello C.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mar 18 mar 2008 - 09:28
>Salve, sto cominciando a fare i primi passi nel mondo della programmazione
>di piccoli gestionali.
>Mi sto creando una applicazione per gestire le mie finanze in
>VB.NET.
>nelle mie prime prove, ho inserito all'interno di un form un
>datagridview per la visualizzazione dei dati di una tabella mysql,
>a fianco ho inserito un tasto "inserisci" per effettuare un inserimento
>di un nuovo record da un nuovo form.
>Inserendo i dati, quando clicco sul mio tasto di add il datagrid
>non mi viene aggiornato, però so che l'inserimento è andato a
>buon fine, perchè se riavvio l'applicazione il nuovo record c'è.
>Come faccio ad intercetare l'evento di modifica del dataset???Qualcuno
>può chiarirmi questo dilemma???
>Grazie anticipatamente.
Presumento che tu abbia collegato il tuo DataGridView ad un Dataset, tieni in considerazione che il Dataset è una copia lato client dell'origine dati, quindi tutte le modifiche che apporterai al Dataset (attraverso il DataGridView) non si riperquoteranno sul Database fino a quando non richiamerai il metodo Update del Dataadapter utilizzato per il popolamento.
Viceversa, eventuali modifiche effettuate sul database fisico non si riperquoteranno automanticamente sul tuo Dataset ma dovrai ricrearlo e ricollegarlo al DataGridView per ottenere i dati aggiornati.
Ti consiglierei di aggiungere con il tuo pulsante add i dati al DataSet anzichè al database ed eseguire l'update al momento desiderato, questo ti consentirà anche di poter annullare eventuali modifiche senza toccare il database fisico.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
xxxgiacomoxxx
Profilo
| Newbie
14
messaggi | Data Invio:
mar 18 mar 2008 - 13:55
Ok grazie...appena ho due minuti proverò a riguardare il codice che ho scritto...
Grazie tante
xxxgiacomoxxx
Profilo
| Newbie
14
messaggi | Data Invio:
mer 19 mar 2008 - 19:03
Ciao, ho provato a fare la modifica che mi hai detto, ma forse non ho capito bene; ti posto anche il codice, così vedi la mia schifezza[:):
Private Sub btnInserisci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserisci.Click
Inserisci.Show()
End Sub
questo è l'azione compiuta dal tasto inserisci.
Public Class Inserisci
Dim strConn As String = "server=localhost;user id=giacomo;Password=l3g0l4s;persist security info=True;database=gestioneeconomica"
Dim cn As New MySqlConnection(strConn)
Dim ds As New DataSet()
Dim da As New MySqlDataAdapter
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Dim exComm As New MySqlCommand()
Dim dataValuta As Date = CDate(txtData.Text)
Dim descrizione As String = txtDescrizione.Text
Dim dare As Double = CDbl(txtDare.Text)
Dim avere As Double = CDbl(txtAvere.Text)
Dim proxRiga As Integer = 0
Dim ottieniUltimaRiga As New MySqlCommand("SELECT max(IDRiga) from movimentigennaio;", cn)
cn.Open()
proxRiga = CType(ottieniUltimaRiga.ExecuteScalar, Integer)
proxRiga += 1
exComm.Connection = cn
exComm.CommandText = "CALL SP_I_MOV_MESE(?pMese, ?pRiga, ?pData, ?pDescr, ?pDare, ?pAvere, ?pSaldo);"
exComm.Parameters.AddWithValue("?pMese", 1).DbType = DbType.Int16
exComm.Parameters.AddWithValue("?pRiga", proxRiga).DbType = DbType.Int16
exComm.Parameters.AddWithValue("?pData", dataValuta).DbType = DbType.Date
exComm.Parameters.AddWithValue("?pDescr", descrizione).DbType = DbType.String
exComm.Parameters.AddWithValue("?pDare", dare).DbType = DbType.Double
exComm.Parameters.AddWithValue("?pAvere", avere).DbType = DbType.Double
exComm.Parameters.AddWithValue("?pSaldo", 0.0).DbType = DbType.Double
exComm.ExecuteNonQuery()
da.Update(ds, "movimentigennaio") <--
cn.Close()
da = Nothing
cn = Nothing
Me.Close()
End Sub
End Class
Questo invece è cio che viene eseguito dal pulsante Add all'interno del form Inserisci. Ti sarei molto grato se potessi dirmi dove sbaglio. Grazie
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 !