Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Svuotare DataGridView
Forum - C# / VB.NET - Svuotare DataGridView

Avatar
francovacchiano (Normal User)
Rookie


Messaggi: 29
Iscritto: 28/10/2008

Segnala al moderatore
Postato alle 9:35
Venerdì, 23/01/2009
Ho la necessità di svuotare con un bottone, il DataGridView con le righe caricate. Successivamente da codice ricalcolo e riscrivo le righe. A video mi elimina le righe
Il problema è che quando vado a salvare, oltre alle nuove inserite, mi ritrovo anche le vecchie righe presenti quando ho caricato DataGridView.
Come posso fare per eliminare le righe ?
Questo è il codice che uso per caricare, cancellare e salvare.

caricamento
---------------------------------------
Dim cn AsNew SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NorthWind;Data Source=.\sqlexpress;Connect Timeout=5")
Dim da As New SqlDataAdapter()
Dim dt As New DataTable()
Dim cm As New SqlCommand("Select * FROM TabClienti", cn)
da.SelectCommand = cm
Dim cmbuilder AsNew SqlCommandBuilder(da)
dt = New DataTable
da.Fill(dt)
Me.DataGridView2.DataSource = dt
---------------------------------------

salvataggio
------------------------------------
Me.DataGridView1.BindingContext(dt1).EndCurrentEdit( )
Me.da1.Update(dt1)
------------------------------------

pulizia DatagridView
------------------------------------
Me.DataGridView1.DataSource.rows.clear()
------------------------------------

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:31
Venerdì, 23/01/2009
immagino che questo codice sia tipo come un update o aggiornamento.

sposta il rows.clear()
all'inizio del codice
anzichè di posizionarlo alla fine
vedi che funziona :k:

Codice sorgente - presumibilmente VB.NET

  1. 'pulizia DatagridView
  2. Me.DataGridView1.DataSource.rows.clear()
  3.  
  4. Dim cn AsNew SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NorthWind;Data Source=.\sqlexpress;Connect Timeout=5")
  5. Dim da As New SqlDataAdapter()
  6. Dim dt As New DataTable()
  7. Dim cm As New SqlCommand("Select * FROM TabClienti", cn)
  8. da.SelectCommand = cm
  9. Dim cmbuilder AsNew SqlCommandBuilder(da)
  10. dt = New DataTable
  11. da.Fill(dt)
  12. Me.DataGridView2.DataSource = dt
  13.  
  14. 'salvataggio
  15.  
  16. Me.DataGridView1.BindingContext(dt1).EndCurrentEdit( )
  17. Me.da1.Update(dt1)



Dovrebbe svolgersi in questo modo

Prima svuoti tutto il datagrid
e dopo ricarichi tutto così ti aggiunge i dati nuovi se ci sono e ti toglie quelli eliminati.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
francovacchiano (Normal User)
Rookie


Messaggi: 29
Iscritto: 28/10/2008

Segnala al moderatore
Postato alle 15:08
Sabato, 24/01/2009
Ti ringrazio per la risposta. Ma non ho espresso bene il pmio problema.
Io carico la DataGrdiView con il codice che ti ho esposto; successivamente devo cancellare tutto quello che vedo a video, e riempire la griglia da codice con delle formule, per poi salvare nel database.
Quello che tu mi hai suggerito è riferito alla ricarica della griglia dal database.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:29
Sabato, 24/01/2009
Prova invece ad annullare il datasource e a reinizializzarlo.

PM Quote
Avatar
francovacchiano (Normal User)
Rookie


Messaggi: 29
Iscritto: 28/10/2008

Segnala al moderatore
Postato alle 15:36
Sabato, 24/01/2009
In che modo ? Tieni presente che mi deve cancellare dalla tabella, le righe che annullo dalla griglia.
Grazie.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 13:52
Lunedì, 26/01/2009
cioè vuoi eliminare sia a video che dal database la righa che annulli?


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:35
Lunedì, 26/01/2009
Hai usato il metodo EndEdit per inviare le modifiche al datasource?

PM Quote