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

    [vb.net]Eliminare riga selezionata da datagrid

    Salve, ho un datagrid che premendo un pulsante mi permette di eliminare dal database, però la riga rimane nel datagrid fino a quando non chiudo la finestra e la riaspro. come posso eliminarla anche dal datagrid? posto il codice che uso, grazie

    Dim readcell As String = DataGridView1.CurrentCell.Value
    Dim risposta As String
    risposta = MsgBox("Sicuro di Cancellare?", MsgBoxStyle.OkCancel)
    If risposta = 1 Then
    Try

    Dim command As New OleDbCommand
    command.Connection() = connection


    command.CommandText() = "Delete from AnamnesiAtleta where Numero=('" + readcell + "')"
    command.ExecuteNonQuery()


    MsgBox("Cancellato correttamente")

    Catch
    MsgBox(Err.Description)
    End Try


    End If
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  2. #2
    non so perchè usate sistemi "ibridi" per fare le cose... scegliete una logica ed usate solo quella!!
    :rollo:
    il datagrid come lo riempi?? penso che tu lo associ ad un dataset che riempi a sua volta con il metodo fill del dataadapter... bene! se fai così la riga che selezioni non è altro che un datarow, per eliminarla basta fare tuodatarow.delete, poi per trasmettere le modifiche al database esegui il metodo update del dataadapter... altrimenti se non vuoi fare tutto questo dopo la cancellazione devi rieseguire il metodo fill del datatable associato.... spero di essermi spiegato..

    ps: cambia quel msgbox con la nuova messagebox... che è meglio!
    I database... la mia passione + o -

  3. #3
    Scausa ma nn ho capito granchè, questo è il codice completo magari se puoi apportarmi le modifiche ti ringrazio tanto

    Try


    Dim command As New OleDbCommand
    command.Connection() = connection
    command.CommandText() = "SELECT * FROM AnamnesiAtleta"

    Dim da As New OleDbDataAdapter(command)
    Dim ds As New DataSet()
    Dim dt As New DataTable
    da.Fill(ds)
    dt = ds.Tables(0)
    DataGridView1.DataSource() = dt
    DataGridView1.Visible() = True

    Catch
    MsgBox(Err.Description)
    End Try

    End Sub

    Private connection As OleDbConnection
    Private Sub cancellaButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cancellaButton.Click

    Dim readcell As String = DataGridView1.CurrentCell.Value
    Dim risposta As String
    risposta = MsgBox("Sicuro di Cancellare?", MsgBoxStyle.OkCancel)
    If risposta = 1 Then
    Try

    Dim command As New OleDbCommand
    command.Connection() = connection


    command.CommandText() = "Delete from AnamnesiAtleta where Numero=('" + readcell + "')"
    command.ExecuteNonQuery()

    MsgBox("Cancellato correttamente")

    Catch
    MsgBox(Err.Description)
    End Try

    End If

    End Sub
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  4. #4
    guarda fai una cosa... prima di iniziare ad usare un comando studialo... il dataadapter può avere associati 4 command, 1 che si usa per il Fill (una SELECT) e gli altri tre che si usano per l'Update (INSERT,UPDATE,DELETE) grazie a questi due metodi (fill e update) puoi tenere aggiornati rispettivamente il datatable ed il db... dai un'occhiata alla guida e capirai meglio
    I database... la mia passione + o -

  5. #5
    A volte seguendo un esempio si capisce meglio quello che uno deve fare, se potresti aggiornarmi le modifiche forse capitò anche dove mettere le mani
    Grazie
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  6. #6
    allora...

    codice:
    dim da as new oledbdataadapter
    
    da.selectcommand.commandtext="SELECT....."
    da.selectcommand.connection = tuaconnessione
    '
    da.deletecommand.commandtext="DELETE...."
    da.deletecommand.connection=tuaconnessione
    '
    'con il seguente metodo il dataadapter carica i dati untilizzando il selectcommand
    da.fill (tuodatatable)
    '
    'adesso assegnamo l'origine dati ad una grid
    tuodatagrid.datasource = tuodatatable
    '
    'adesso se vuoi eliminare un record è molto semplice
    'i data table sono formati da datarow, quindi se tu selezioni una riga nel datagrid hai 'implicitamente selezionato un datarow...
    '
    dim dr as datarow
    dr = tuodatagrid.datasource(tuodatagrid.currentrowindex)
    'abbiamo assegnato alla variabile dr la riga che vuoi eliminare
    dr.delete
    'così abbiamo eliminato dal datatable, ma non dal db, la riga
    'adesso per rendere le modifiche permanenti
    da.update (tuodatatable)
    come ti spiegavo il metodo fill utilizza il selectcommand per caricare i dati, mentre il metodo update utilizza i command delete, insert e update (qui abbiamo messo solo il delete) per aggiornare il db dal datatable...
    I database... la mia passione + o -

  7. #7
    Grazie 10000
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da ertulio
    Salve, ho un datagrid che premendo un pulsante mi permette di eliminare dal database, però la riga rimane nel datagrid fino a quando non chiudo la finestra e la riaspro. come posso eliminarla anche dal datagrid? posto il codice che uso, grazie
    ... e via con un'altra discussione duplicata, che ripropone lo stesso problema e lo stesso codice già riportato qui.

    Mi dispiace per chi ha partecipato, o voleva partecipare alla discussione (potrà farlo nell'altra discussione).

    Ertulio, sei già stato avvisato un numero ormai infinito e scandaloso di volte, e continui imperterrito ad aprire discussioni duplicate. Ribadisco che sei ad un passo dal "ban".
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.