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
Cancellare a blocchi di un dataset in binding a un dataset.
martedì 18 ottobre 2005 - 18.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gilberto
Profilo
| Junior Member
152
messaggi | Data Invio:
mar 18 ott 2005 - 18:23
Salve a tutti!
Ho un dataset in binding a un datagrid.
Mi piacerebbe sapere come eseguire una cancellazione a blocchi del dataset impostando un filtro.
Il collegamento è di tipo OleDb a un archivio Access.
Ho fatto un paio di tentativi, prima impostando un commanddelete che cancellasse un blocco di dati, poi usando un commandselect e scorrendo il dataset per le righe selezionate impostando dopo l'item(x) il metodo delete.
Updatando e riflillando non mi ha cancellato una cippa.
Qualcuno è in grado di spiegarmi come devo fare?
Ringrazio in anticipo chiunque riesca a mettermi sulla buona strada.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 18 ott 2005 - 18:45
>Qualcuno è in grado di spiegarmi come devo fare?
Ciao allora, abbiamo bisogna di una Connection di un DataAdapter di un DataSet e di un CommandBuilder.
Una volta che tu hai il tuo DataSet puoi bindarlo alla DataGrid. L'utente può fare tutte le operazioni che vuole, inserire, rimuovere ecc. una volta terminato tu devi rimandare le modifiche al database.
Devi usare il Command Builder per far sì che vengano creati i comandi di insert, update e delete. Come parametro ci metti il DataAdapter (da)
Dim olecb as OleDbCommandBuilder
olecb=new OleDbCommandBuilder(da)
Dopo le modifiche dell'utente puoi usare il metodo del DataSet AcceptChanges accetti quanto fatto dall'utente:
ds.AcceptChanges()
alla fine chiami l'Update del DataAdapter:
da.Update(ds)
e le modifiche saranno inviate al Database.
Ti consiglio quando crei il DataSet, quando lanci l'Update ecc. di sepcificare un nome tabella esempio
.Fill(ds,"Tabella")
.Update(ds,"Tabella")
Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
gilberto
Profilo
| Junior Member
152
messaggi | Data Invio:
mer 19 ott 2005 - 10:14
Grazie per l'aiuto ma, io intendevo una cosa diversa.
Il mio problema è cancellare interi blocchi di dati ( specificati da parametri tipo "ANNO=1999" ) all'interno della tabella ( una tabella non relazionata ad altre ) SENZA che sul datagrid bindato al dataset l'utente faccia alcunchè ( naturalmente facendo ciò si devono cancellare i dati anche alla fonte dati ).
E' questo che non capisco come fare.
Al limite sarebbe possibile usare direttamente una stored procedure con passaggio di parametri?
Ringrazio ulteriormente per il gentile aiuto, sempre se la comprensibilità della domanda sia completa!
Gilbert
gilberto
Profilo
| Junior Member
152
messaggi | Data Invio:
mer 19 ott 2005 - 11:00
Ho trovato la soluzione!
Public Sub engage(ByVal miaquery As String, ByVal miaconnessione As String)
Dim connessione As New OleDbConnection(miaconnessione)
Dim almiocomando As New OleDbCommand(miaquery, connessione)
almiocomando.Connection.Open()
almiocomando.ExecuteNonQuery()
connessione.Close()
End Sub
Non riuscivo a risolvere grazie alla mia ignoranza sugli OleDbCommand e la ExecuteNonQuery.
Ti ringrazio moltissimo perchè mi hai permesso di cercare e trovare come si utilizzano gli OleDbCommand.
Gilbert
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 19 ott 2005 - 14:39
Ok, ciao Gilberto,
a quanto pare il tuo problema era più facile del previsto.
Esattamente con la ExecuteNonQuery puoi eseguire un qualsiasi statement SQL, come DELETE, INSERT ecc.
Naturalmente è sempre consigliato in presenza di un SQL Server, l'utilizzo di Stored Procedure.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
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 !