Ciao,
nel mio programma ho 3 gridview che prendono i dati da altrettante tabelle di un databse collegato tramite wizard al progetto.
Vorrei che, alla pressione del tasto "Canc", il record venisse eliminato non solo dalla datagridview ma proprio dal database.
Ho provato a cercare in giro per internet ma temo di non aver capito molto.
Comunque l'idea (sperando che abbia senso) è: sfruttare l'evento UserDeletingRow -> farmi dire quale riga l'utente sta cancellando -> utilizzare table.Rows.Remove per eliminarla.
Posto il mio tentativo:
Dai messagebox di controllo che ho messo pare che si pianti al momento di salvare i cambiamenti, cioè sucodice:Private Sub RisultatiPrimaDataGridView_UserDeletingRow(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowCancelEventArgs) Handles RisultatiPrimaDataGridView.UserDeletingRow Dim riga As DataGridViewRow = e.Row Dim nome As String = riga.Cells(0).Value MsgBox(nome) Dim adapter_ris_prima = New golfDataSetTableAdapters.RisultatiPrimaTableAdapter Dim table As DataTable = GolfDataSet.Tables("RisultatiPrima") Dim v = From o In table Where o.Item("Nome") = nome Select o table.Rows.Remove(v(0)) MsgBox("ciao") adapter_ris_prima.Update(GolfDataSet) MsgBox("fin qui ok") GolfDataSet.AcceptChanges() End Sub
In particolare l'eccezione è questacodice:GolfDataSet.AcceptChanges()
Spero di aver fornito tutte le informazioni necessarie e...aspetto suggerimenti!codice:IndexOutOfRange Exception was unhandled Index 0 is either negative or above rows count.![]()

Rispondi quotando