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

    Cancellare un record da un controllo DataGrid

    Salve, ho un controllo datagrid con ID=dgTabella collegato ad un database di Access di nome leggi.mdb. Programmo in VB.NET su piattaforma Web Matrix per lo sviluppo di pagine ASP.NET.

    Ho inserito una colonna di tipo PushButton nel datagrid che mi dovrebbe permettere di cancellare dal database il record visualizzato nella riga della tabella contenente il pulsante cliccato.

    Ho imparato ad ottenere l'indice della riga della tabella selezionata e a visualizzare tale valore premendo il PushButton. Il codice da me utilizzato è il seguente:

    codice:
         Sub dgTabella_DeleteCommand(sender As Object, e As DataGridCommandEventArgs)
    
            Dim index As Integer
            index = e.Item.ItemIndex
    
            Dim indice As String
    
            indice = e.Item.Cells(index).Text
    
            lblMessage.Text = "Indice selezionato: " & indice
    
         End Sub
    Questo è, invece, il codice da me utilizzato (ma non nel datagrid) per eliminare un record dall'archivio:

    codice:
                  Dim MySQL As String = "DELETE FROM archivio_leggi WHERE id_legge = txtNumLegge.Text;"
                  Dim myConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & server.mappath("datastore/leggi.mdb") & ";")
                  Dim Cmd as New OleDbCommand(MySQL, MyConn)
    
                  cmd.Parameters.Add(New OleDbParameter("@id_legge", txtNumLegge.Text))
                  cmd.Parameters("@id_legge").Value = txtNumLegge.Text
    
                  MyConn.Open()
                  cmd.ExecuteNonQuery
                  MyConn.Close()
    Come si può notare, l'ID del record è recuperato dal valore della textbox di nome txtNumLegge.

    Mi piacerebbe poter integrare nell'evento dgTabella_DeleteCommand il codice da me utilizzato per cancellare un record, ma non so come fare per recuperare l'ID del record corrente, onde poterlo cancellare.

    Ho pensato di inserire nel datagrid una colonna contenente l'ID di ciascun record ma, come ho già detto, non so come fare per individuarlo quando clicco sul PushButton.

    Attualmente, l'unico valore che riesco a recuperare premendo un pulsante nel datagrid è l'indice della riga selezionata.

    Qualcuno saprebbe aiutarmi a far sì che la pressione del PushButton produca la cancellazione del record selezionato dall'archivio?

    Grazie in anticipo.

  2. #2
    RISOLTO !!!

    Ecco la soluzione al mio problema:

    codice:
    Dim MySQL As String = "DELETE FROM archivio_leggi WHERE id_legge =" & dgTabella.DataKeys(CInt(e.Item.ItemIndex)) & ";"

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 © 2026 vBulletin Solutions, Inc. All rights reserved.