Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635

    [vb.net] cancellare record da datagridview

    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:
    codice:
    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
    Dai messagebox di controllo che ho messo pare che si pianti al momento di salvare i cambiamenti, cioè su
    codice:
    GolfDataSet.AcceptChanges()
    In particolare l'eccezione è questa
    codice:
    IndexOutOfRange Exception was unhandled
    Index 0 is either negative or above rows count.
    Spero di aver fornito tutte le informazioni necessarie e...aspetto suggerimenti!

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Vorrei aggiungere un dettaglio: il problema si verifica sia se inserisco una sola riga e poi provo a cancellarla, sia se inserisco più righe (diciamo 3 o 4) e poi provo a cancellarne una. In quel caso però mi dice ad esempio
    codice:
    Index 2 is either negative or above rows count.
    E' ovvio che 2 non è negativo quindi pare ci sia un problema con gli indici delle righe...

  3. #3
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    ho pensato che il problema potesse essere che la datagridview cercava di aggiornarsi leggendo valori che non esistevano più e quindi, alla fine dell'operazione di cancellazione, ho provato ad aggiornare "manualmente" quello che deve mostrare con
    codice:
    RisultatiPrimaDataGridView.DataSource = adapter_ris_prima
    ma non cambia nulla.
    Ormai non so più cosa provare e spero nel vostro aiuto!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.