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
Gestione DatagridView
lunedì 23 luglio 2007 - 07.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
attilio
Profilo
| Junior Member
115
messaggi | Data Invio:
lun 23 lug 2007 - 07:24
Salve a tutti in una mia applicazione ho esigenza di scrivere dati visualizzabili e editabili su una datagrid view temporanea fino al salvataggio, ho pensato di scrivere su una tabella di appoggio temp fino al salvataggio quando i dati vengono portati definitivamente nella tabella di destinazione.
Mi sapete dire come posso fare per spostare tutti i dati di questa tabella nella definitiva?
siccome nei dati forniti vi è anche un contatore che totalizza il contante totale per la transazione vorrei che sia unico per tutti i record e non che su ogni record inserito si scriva il totale, avete idee per come fare?
Grazie
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
lun 23 lug 2007 - 13:04
>Salve a tutti in una mia applicazione ho esigenza di scrivere dati visualizzabili e editabili su una datagrid view temporanea fino al >salvataggio, ho pensato di scrivere su una tabella di appoggio temp fino al salvataggio quando i dati vengono portati >definitivamente nella tabella di destinazione.
>Mi sapete dire come posso fare per spostare tutti i dati di questa tabella nella definitiva?
Non ho capito bene, hai bisogno di sincronizzare due DataTable di un DataSet?
>siccome nei dati forniti vi è anche un contatore che totalizza il contante totale per la transazione vorrei che sia unico per tutti i >record e non che su ogni record inserito si scriva il totale, avete idee per come fare?
Una volta calcolato il campo totale effetti un Update di tutti i record impostando il valore del campo totale.
Ciao,
Ale
attilio
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 24 lug 2007 - 06:58
Scusa effettivamente non mi sono spiegato...
Nella tabella temporanea tengo tutti i dati della transazione alla fine della vendita vorrey fare una query che esporta tutti i dati da questa tabella a quella definitiva...e anche il valore totale della colonna totale che si compilerà penso solo con il salvataggio finale in modo da non replicarne il valore.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mar 24 lug 2007 - 13:17
Scusami ma ancora non capisco il senso della tabella temporanea.
Se tu utilizzi ADO.NET in modalità disconnessa e crei un DataSet contenente un DataTable riempito con i dati della tabella del database (con il metodo Fill), potrai effettuare aggiornamenti, modifiche, eliminazioni senza che i dati originali del database vengano toccati fino a quando non deciderai di effettuare l'update attraverso il DataAdapter.
Se non hai mai utilizzato questi strumenti per la gestione del database, fammi sapere che ti posto un pò di codice con le dovute spiegazioni.
Se ho capito male scusami...
Ciao
Alessandro
attilio
Profilo
| Junior Member
115
messaggi | Data Invio:
mar 24 lug 2007 - 22:57
ti ringrazio, io lo sto usando in questa modalità ma un pochino di codice mi aiuterebbe a meglio comprendere come gestirlo....
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mar 24 lug 2007 - 23:27
Provo a spiegarti passo passo come devi fare:
1. Creazione di un DataSet contenente un DataTable che dovrai riempire con i dati della relativa tabella del database attraverso il DataAdaprer:
' Importa i namespaces necessari
Imports System
Imports System.Data.SqlClient
Private Sub CreaDataSet()
' Apre la connessione al database
Dim MySqlConnection As SqlConnection
Dim StrConnectionString As String = "Stringa di connessione..."
MySqlConnection = New SqlConnection(StrConnectionString)
Try
MySqlConnection.Open()
Catch ex As Exception
MsgBox("Problemi nell'apertura del database!")
exit sub
End Try
' Crea il DataTable
Dim SqlDS As DataSet
Dim SqlDA as New SqlDataAdapter
Dim MySqlCommand As New SqlCommand
MySqlCommand = "SELECT * FROM MiaTabella"
MySqlCommand.Connection = MySqlConnection
MySqlCommand.CommandTimeout = 30
SqlDA.SelectCommand = MySqlCommand
SqlDA.Fill(SqlDS, "TableName") ' Crea la tabella TableName nel Dataset riempendola (fill) con i dati del database
' Crea automaticamente le istruzioni INSERT/DELETE/UPDATE da assegnare al DataAdapter
Dim CmdBuilder As SqlCommandBuilder = New SqlCommandBuilder(SqlDA)
SqlDA.InsertCommand = CmdBuilder.GetInsertCommand
SqlDA.DeleteCommand = CmdBuilder.GetDeleteCommand
SqlDA.UpdateCommand = CmdBuilder.GetUpdateCommand
2. Effettua il binding del Dataset/DataTable alla DataGridView
Me.MyDataGrid.DataSource=SqlDA
Me.MyDataGrid.DataMember="TableName"
end sub
3. A questo punto, se esegui il programma vedrai visualizzati i dati nella tua DataGridView.
Potrai modificare, aggiungere nuovi record, eliminarli. Il DataTable è una copia lato client
della tabella che realmente risiede nel database per cui tutte le modifiche apportate non
avranno effetto nel database fino a quando deciderai di sincronizzarli.
4. Effettuare la sincronizzazione del database attraverso il metodo Update del DataTable:
' Questo metodo sincronizza il tuo DataTable con la tabella di origine del database
SqlDA .Update(DbDbase.SqlDS.Tables("TableName"))
Spero di essere stato abbastanza chiaro. L'argomento è abbastanza tosto e difficilmente
sintetizzabile in poche riche per cui ti consiglio di approfondire l'argomento, magari con
l'aiuto di un buon libro.
Ti posso consigliare un volume dell'Apogeo intitolato VB.NET Programmazione dei database,
che risulta essere molto semplice (alla portata di tutti) e allo stesso tempo completo.
Ciao
Alessandro
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 !