Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [vb.net] errore su doppio click riga datagrid

    Sino ad ora sono riuscito grazie ad i post del forum a produrre del codice funzionante ma...........ora......
    Ho un dataset (daset3) con cui riempio una tabella (tbl1) e una datagrid (datagrid4)
    Ad un certo punto su scelta dell'utente devo operare un'eliminazione dei dati della tabella solo a livello visuale che poi trasmetto al datagrid
    Posto il codice
    x1=0
    While x1 < tbl1.Rows.Count
    If tbl1.Rows(x1).Item(8) = MIOPARAMETRO Then
    tbl1.Rows(x1).Delete()

    End If
    x1 += 1
    End While
    DataGrid4.DataSource = Tbl1

    In seguito in una sub che si avvia al doppioclick su una riga del datagrid4 ricevo l'errore

    IMPOSSIBILE ACCEDERE ALLE INFORMAZIONI SULLLA RIGA ELIMINATA TRAMITE LA RIGA

    la sub è questa:


    Private Sub DataGrid4_Navigate(ByVal sender As System.Object, ByVal ne As System.EventArgs) Handles DataGrid4.DoubleClick


    Dim tblx As New DataTable
    tblx = daset3.Tables("spese")
    label1.text = CStr(tblx.Rows(DataGrid4.CurrentRowIndex).Item(9))

    end sub

    il datagrid4 non visualizza ovviamente le righe eliminate sopra ma è come se contenesse ad esse qualche riferimento

    Ovviamente nulla cambia se in entrambe le sub uso la stessa tabella


    Scusate la lunghezza del post ma non sapevo come spiegarmi e spero anche che il titolo vada bene

  2. #2

    Risolto Posto se serve a qualcuno in futuro

    come immaginavo(dopo 2 giorni e una nottataccia) l'errore(lo spigo a modo mio un po' rozzo) sta nell'aggiornare la tabella dopo il .delete,
    E' come se data la tabella
    c1 c2 c3
    d1 d2 d3

    e gli si dice elimina la riga c1 c2 c3, vengano ad essere ancora mantenuti dei riferimenti vuoti alla riga c1, c2 ,c3 che pero' non viene visualizzata nel datagrd4 (vedi post sopra)
    Per sisolvere cio basta aggiungere la riga tbl1.AcceptChanges() dopo il while del tabella.delete

  3. #3
    comunque credo che sia più semplice fare l'operazione di delete sul datagrid, anzichè sulla table... in quanto dopo fatto sulla grid si riflette in automatico sulla table del dataset...
    I database... la mia passione + o -

  4. #4

    ok

    concordo ma a me serviva sulla tabella per altri motivi troppo lunghi da spiegare

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.