Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-11-2010, 07:48   #1
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
[VB2010] - Refresh DataTable e DataGridView

Salve ragazzi,

avendo a disposizione una DataTable (definita Dtb nel mio progetto) e una DataGridView; col seguente codice elimino il record X selezionato nella griglia:

Codice:
        Dim Cmd As OleDbCommand
        Dim Valore_ID As Long
        Cmd = New OleDbCommand
        Try
            'Cnn.Open()
            Cmd.Connection = Cnn
            Valore_ID = Dtb.Rows(Riga).Item(0)
            Cmd.CommandText = "DELETE FROM [" & Tabella & "] WHERE [" & Dtb.Columns(0).ColumnName & "]=" & Valore_ID & ""
            cmd.ExecuteNonQuery()
            Cnn.Close()
            MsgBox("Record deleted Successfully.", , "Delete Record")
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
        Cnn.Close()
Il mio problema è come effettuare un refresh della DataTable e della DataGridView ad esso collegata in quanto una volta eliminato il record questo rimane ancora visibile e selezionato nella griglia.
Se chiudo e riapro il mio programma questo record, giustamente, manca


Grazie
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2010, 10:29   #2
jackk87
Senior Member
 
Iscritto dal: Jan 2007
Messaggi: 404
dopo l'eliminazione svuota la datagrid e ricarica i dati dal db
jackk87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2010, 10:46   #3
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da jackk87 Guarda i messaggi
dopo l'eliminazione svuota la datagrid e ricarica i dati dal db
Con questo codice svuoto la griglia:
Codice:
        dgvBiblioteca.DataBindings.Clear()
        dgvBiblioteca.DataSource = Nothing
        dgvBiblioteca.DataMember = Nothing
        dgvBiblioteca.Rows.Clear()
        dgvBiblioteca.Refresh()
e con questo carico il DataSource
Codice:
dgvBiblioteca.DataSource = Dtb
ma nulla come se il DataTable non effettua alcun Refresh
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2010, 12:06   #4
jackk87
Senior Member
 
Iscritto dal: Jan 2007
Messaggi: 404
Quote:
Originariamente inviato da lucausa75 Guarda i messaggi
Con questo codice svuoto la griglia:
Codice:
        dgvBiblioteca.DataBindings.Clear()
        dgvBiblioteca.DataSource = Nothing
        dgvBiblioteca.DataMember = Nothing
        dgvBiblioteca.Rows.Clear()
        dgvBiblioteca.Refresh()
e con questo carico il DataSource
Codice:
dgvBiblioteca.DataSource = Dtb
ma nulla come se il DataTable non effettua alcun Refresh
allora di solito io rieseguo la query per il datatable e poi la associo al datasource. Facendo così come sopra non si aggiorna perchè tu devi aggiornare il dtb quindi devi ricaricare di nuovo tutti i dati

Ultima modifica di jackk87 : 10-11-2010 alle 13:18.
jackk87 è offline   Rispondi citando il messaggio o parte di esso
Old 10-11-2010, 15:05   #5
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da jackk87 Guarda i messaggi
allora di solito io rieseguo la query per il datatable e poi la associo al datasource. Facendo così come sopra non si aggiorna perchè tu devi aggiornare il dtb quindi devi ricaricare di nuovo tutti i dati
...non esiste un metodo Refresh per il DataTable da poter richiamare?

E' impossibile che per ogni eliminazione debbo ricaricare il DataTable...
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2010, 09:49   #6
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da lucausa75 Guarda i messaggi
...non esiste un metodo Refresh per il DataTable da poter richiamare?

E' impossibile che per ogni eliminazione debbo ricaricare il DataTable...
Se l'operazione viene effettuata a livello di DataTable, puoi provare a refreshare solo il DataGridView, che espone un metodo Refresh().

Ma forse era meglio fare il percorso inverso, ossia popolare il DataGridView in modalità disconnessa. Quando un utente esegue un'operazione, come la Delete, prima ti pigli l'id della riga, e poi aggiorni tu il DB con un semplice Command. In questo modo elimini alla radice ogni problema di refresh...
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2010, 11:33   #7
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Se l'operazione viene effettuata a livello di DataTable, puoi provare a refreshare solo il DataGridView, che espone un metodo Refresh().

Ma forse era meglio fare il percorso inverso, ossia popolare il DataGridView in modalità disconnessa. Quando un utente esegue un'operazione, come la Delete, prima ti pigli l'id della riga, e poi aggiorni tu il DB con un semplice Command. In questo modo elimini alla radice ogni problema di refresh...

...sono un pò confuso;

questo è il codice con cui elimino il record e all'interno mi daresti una diritta su come e dove posizionare le righe di codice per far ciò che mi consigli?

Codice:
        Dim Cmd As OleDbCommand
        Dim Valore_ID As Long
        Cmd = New OleDbCommand
        Try
            'Cnn.Open()
            Cmd.Connection = Cnn
            Valore_ID = Dtb.Rows(Riga).Item(0)
            Cmd.CommandText = "DELETE FROM [" & Tabella & "] WHERE [" & Dtb.Columns(0).ColumnName & "]=" & Valore_ID & ""
            cmd.ExecuteNonQuery()
            Cnn.Close()
            MsgBox("Record deleted Successfully.", , "Delete Record")
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
        Cnn.Close()
Grazie
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 11-11-2010, 13:47   #8
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Bah, non è che quel codice mi entusiasmi poi molto...
Inoltre non sono d'accordo sulla costruzione della stringa sql. Se proprio vuoi, usa almeno i parameters !

Personalmente la risolverei in modo molto più agile.

1. Eseguo il Binding tra il DataGridView e il DataSet "DS" ( o DataTable che sia ), precedentemente "fillato" con apposito Adapter "DA" :

Codice:
        DA.Fill(DS)
        DataGridView1.DataSource = DS.Tables(0)
2. A questo punto inserisco un pulsante unico di "Applica Modifiche", che contiene tutta la gestione di tutte le possibili azioni che un utente può fare su una o anche più righe contemporaneamente, mediante un OleDbCommandBuilder, che esiste proprio per questo :
Codice:
    Private Sub cmd_applica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_applica.Click

        If DS.HasChanges() Then
            Using CB As New OleDb.OleDbCommandBuilder(DA)
                DA.UpdateCommand = CB.GetUpdateCommand
                DA.InsertCommand = CB.GetInsertCommand
                DA.DeleteCommand = CB.GetDeleteCommand
                DA.Update(DS)
            End Using
            DS.AcceptChanges()
            MsgBox("Modifiche Salvate", MsgBoxStyle.Information, "OK")
        End If

    End Sub
E il gioco è fatto : gestisce tutto in un colpo solo ed evita virtualmente ogni problema di refresh.
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2010, 10:44   #9
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Bah, non è che quel codice mi entusiasmi poi molto...
Inoltre non sono d'accordo sulla costruzione della stringa sql. Se proprio vuoi, usa almeno i parameters !

Personalmente la risolverei in modo molto più agile.

1. Eseguo il Binding tra il DataGridView e il DataSet "DS" ( o DataTable che sia ), precedentemente "fillato" con apposito Adapter "DA" :

Codice:
        DA.Fill(DS)
        DataGridView1.DataSource = DS.Tables(0)
2. A questo punto inserisco un pulsante unico di "Applica Modifiche", che contiene tutta la gestione di tutte le possibili azioni che un utente può fare su una o anche più righe contemporaneamente, mediante un OleDbCommandBuilder, che esiste proprio per questo :
Codice:
    Private Sub cmd_applica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_applica.Click

        If DS.HasChanges() Then
            Using CB As New OleDb.OleDbCommandBuilder(DA)
                DA.UpdateCommand = CB.GetUpdateCommand
                DA.InsertCommand = CB.GetInsertCommand
                DA.DeleteCommand = CB.GetDeleteCommand
                DA.Update(DS)
            End Using
            DS.AcceptChanges()
            MsgBox("Modifiche Salvate", MsgBoxStyle.Information, "OK")
        End If

    End Sub
E il gioco è fatto : gestisce tutto in un colpo solo ed evita virtualmente ogni problema di refresh.

Grazie del tuo aiuto ma sono nuovo di VB2010 e di Oledb.
Se volessi abbinare il tuo codice al mio da dove dovrei iniziare?
Non mi è chiaro il concetto del binding...
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2010, 15:20   #10
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da lucausa75 Guarda i messaggi
Grazie del tuo aiuto ma sono nuovo di VB2010 e di Oledb.
Se volessi abbinare il tuo codice al mio da dove dovrei iniziare?
Non mi è chiaro il concetto del binding...
No, la mia soluzione è totalmente alternativa. Non può essere "integrata" con la tua. Il Binding lo si esegue semplicemente con quel DataGridView1.DataSource. A quel punto ogni modifica dell'utente a livello di UI ( sul DataGridView ) si riflette sul DataSet DS ( o DataTable, il concetto è lo stesso ).
Perciò per applicare le modifiche al DB, basta controllare se DS "HasChanges" e agire come nel secondo blocco di codice che ho postato.
Secondo me è molto meglio come soluzione, ed anche più elegante, piuttosto che stare a gestire ogni possibile azione dell'utente separatamente...
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 12:40   #11
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
No, la mia soluzione è totalmente alternativa. Non può essere "integrata" con la tua. Il Binding lo si esegue semplicemente con quel DataGridView1.DataSource. A quel punto ogni modifica dell'utente a livello di UI ( sul DataGridView ) si riflette sul DataSet DS ( o DataTable, il concetto è lo stesso ).
Perciò per applicare le modifiche al DB, basta controllare se DS "HasChanges" e agire come nel secondo blocco di codice che ho postato.
Secondo me è molto meglio come soluzione, ed anche più elegante, piuttosto che stare a gestire ogni possibile azione dell'utente separatamente...
Ho cercato delle prove e questo è alla fine il codice che ne è venuto fuori:
Codice:
    Sub Eliminazione()
        Adapter.Fill(Ds)
        Ds.Tables(0).Rows(Riga).Delete()
        Riga = 0
        dgvBiblioteca.DataSource = Ds.Tables(0)
        If Ds.HasChanges = True Then
            Using CB As New OleDb.OleDbCommandBuilder(Adapter)
                Adapter.UpdateCommand = CB.GetUpdateCommand
                Adapter.InsertCommand = CB.GetInsertCommand
                Adapter.DeleteCommand = CB.GetDeleteCommand
                Adapter.Update(Ds)
            End Using
            Ds.AcceptChanges()
            MsgBox("Modifiche Salvate", MsgBoxStyle.Information, "OK")
        End If
    End Sub
ma con questo errore:


lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 13-11-2010, 14:49   #12
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
...per ultimo ho provato questo codice:

Codice:
        Dim Cmd As New OleDbCommand("DELETE FROM [" & Tabella & "] WHERE [" & Ds.Tables(Tabella).Columns(0).ColumnName & "]=" & Valore_ID & "", Cnn)
        Dim Adp As New OleDbDataAdapter
        Adp.SelectCommand = Cmd
        Dim Dst As New DataSet(Tabella)
        Adp.Fill(Dst)
        Dst.Tables(Tabella).Rows(Riga).Delete()
        Riga = 0
        Adp.Update(Dst)
ma ho questo errore:


lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 13:00   #13
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
...ancora quest'altro codice

Codice:
        CnnString = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & AppPath() & DB & ";Jet OLEDB:Database Password=" & PW
        Conn = New OleDbConnection(CnnString)
        StrSql = "DELETE * FROM [" & Tabella & "] WHERE [" & Ds.Tables(Tabella).Columns(0).ColumnName & "]=" & Valore_ID & ""
        Conn.Open()
        Adapter = New OleDbDataAdapter(StrSql, Conn)
        Adapter.Fill(Ds, Tabella)
        Adapter.Update(Ds, Tabella)
        With MyGrid
            .DataSource = Ds.Tables(Tabella).DefaultView
        End With
ma la DataGridView non si aggiorna
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 13:02   #14
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
No, non ci siamo. Non devi cercare di fondere le due soluzioni assieme. Si fa solo un gran casino.

La prima tua soluzione è inutile. Non serve fare il Fill dell'Adapter sul DataSet tutte le volte che un utente fa una Delete...

Il secondo codice è per me incomprensibile : se usi un semplice Command, a quel punto non serve a nulla un DataSet...

Se vuoi usare la MIA soluzione devi solo aggiungere un pulsante di "Applica Modifiche", collegare il DataGridView al DataSet ( Binding... ), lasciare che l'utente faccia le sue operazioni, e applicarle al DB come ho illustrato.

Se vuoi usare la TUA soluzione, è tutta un'altra cosa : allora popolerai il DataGridView in modalità disconnessa, e poi ti vai a gestire una per una le possibili azioni : Update-Delete-Insert... Che è sicuramente più prolissa e meno elegante, come cosa.

Una qualsiasi combinazione di queste due "soluzioni-tipo" è per me superflua, è uno spreco di risorse di calcolo, e inoltre porta ad errori, come infatti ti è successo.

Spero di essere stato un po' più chiaro...
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 14-11-2010, 13:13   #15
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
No, non ci siamo. Non devi cercare di fondere le due soluzioni assieme. Si fa solo un gran casino.

La prima tua soluzione è inutile. Non serve fare il Fill dell'Adapter sul DataSet tutte le volte che un utente fa una Delete...

Il secondo codice è per me incomprensibile : se usi un semplice Command, a quel punto non serve a nulla un DataSet...

Se vuoi usare la MIA soluzione devi solo aggiungere un pulsante di "Applica Modifiche", collegare il DataGridView al DataSet ( Binding... ), lasciare che l'utente faccia le sue operazioni, e applicarle al DB come ho illustrato.

Se vuoi usare la TUA soluzione, è tutta un'altra cosa : allora popolerai il DataGridView in modalità disconnessa, e poi ti vai a gestire una per una le possibili azioni : Update-Delete-Insert... Che è sicuramente più prolissa e meno elegante, come cosa.

Una qualsiasi combinazione di queste due "soluzioni-tipo" è per me superflua, è uno spreco di risorse di calcolo, e inoltre porta ad errori, come infatti ti è successo.

Spero di essere stato un po' più chiaro...

Intanto grazie per la tua pazienza

Mi sento molto confuso in quanto cose che prima riuscivo a farle ad occhi chiusi adesso mi vengono complicatissime.

Ciò che voglio realizzare è proprio quello di dare la possibilità all'utente tramite alcuni bottoni di fare l'inserimento, l'aggiornamento o la eliminazione del record selezionato nel DataGridView.

1) Come popolare il DataGridView in modalità disconnessa?
Non basta che nel form load lo popolo collegandolo al mio DatSet?

2) Come gestire una per una le possibili azioni : Update-Delete-Insert?
Debbo lavorare sullo stesso DataSet o debbo utilizzare un DataTable, un DataReader o simili...?
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 10:36   #16
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Salve ragazzi,

alla fine ho risolto così:

Codice:
Private Sub Aggiornamento(ByVal MyGrid As DataGridView)
        Try
            Dim Cnn As New OleDb.OleDbConnection(CnnString)
            Cnn.Open()
            Adp.UpdateCommand = Cnn.CreateCommand
            Adp.UpdateCommand.CommandText = StrSQL
            Adp.UpdateCommand.ExecuteNonQuery()
            Me.Cursor = Cursors.Default
            MsgBox("Record aggiornato con successo", MsgBoxStyle.Information, NomeApplicazione)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        Dst.Clear()
        Adp.Fill(Dst)
        MyGrid.DataSource = Dst.Tables(0)
End Sub

Private Sub Eliminazione(ByVal MyGrid As DataGridView)
        Try
            Dim Cnn As New OleDb.OleDbConnection(CnnString)
            Cnn.Open()
            Adp.DeleteCommand = Cnn.CreateCommand
            Adp.DeleteCommand.CommandText = "DELETE * FROM [" & Tabella & "] WHERE [" & Dst.Tables(0).Columns(0).ColumnName & "]=" & Valore_ID & ""
            Adp.DeleteCommand.ExecuteNonQuery()
            Me.Cursor = Cursors.Default
            MsgBox("Record eliminato con successo", MsgBoxStyle.Information, NomeApplicazione)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        Dst.Clear()
        Adp.Fill(Dst)
        MyGrid.DataSource = Dst.Tables(0)
End Sub

Private Sub Inserimento(ByVal MyGrid As DataGridView)
        Try
            Dim Cnn As New OleDb.OleDbConnection(CnnString)
            Cnn.Open()
            Adp.InsertCommand = Cnn.CreateCommand
            Adp.InsertCommand.CommandText = StrSQL
            Adp.InsertCommand.ExecuteNonQuery()
            Me.Cursor = Cursors.Default
            MsgBox("Record inserito con successo", MsgBoxStyle.Information, NomeApplicazione)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        Dst.Clear()
        Adp.Fill(Dst)
        MyGrid.DataSource = Dst.Tables(0)
End Sub
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 10:52   #17
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Noooo...
Vabbeh, Luca. Contento te...
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 11:25   #18
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Noooo...
Vabbeh, Luca. Contento te...
..sicuramente sei contraio al fill ripetuto vero?
Però ho preso spunto un pò dal tuo codice e per ciò ti ringrazio!

Troverò una via alternativa e quindi snellirò il progetto.

Invece perchè non dai un'occhiata all'altro mio thread?
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 12:11   #19
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da lucausa75 Guarda i messaggi
..sicuramente sei contraio al fill ripetuto vero?
Però ho preso spunto un pò dal tuo codice e per ciò ti ringrazio!

Troverò una via alternativa e quindi snellirò il progetto.

Invece perchè non dai un'occhiata all'altro mio thread?
Diciamo che non sono d'accordo in generale sull'impostazione di quella Form. Adesso vedendo l'immagine che hai postato sull'altro Thread ho capito perchè trovavi tanto ostica la mia soluzione.

E' soprattutto questione di "stile personale", perciò non è una critica.

Almeno questo però non farlo ! :
Codice:
Adp.DeleteCommand.CommandText = "DELETE * FROM [" & Tabella & "] WHERE [" & Dst.Tables(0).Columns(0).ColumnName & "]=" & Valore_ID & ""
__________________
Contattami su FaceBook --> [ ::: MarcoGG su FaceBook ::: ]
Visita il mio Blog --> [ ::: Il Blog di MarcoGG ::: ]
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2010, 13:18   #20
lucausa75
Senior Member
 
L'Avatar di lucausa75
 
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2698
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Diciamo che non sono d'accordo in generale sull'impostazione di quella Form. Adesso vedendo l'immagine che hai postato sull'altro Thread ho capito perchè trovavi tanto ostica la mia soluzione.

E' soprattutto questione di "stile personale", perciò non è una critica.

Almeno questo però non farlo ! :
Codice:
Adp.DeleteCommand.CommandText = "DELETE * FROM [" & Tabella & "] WHERE [" & Dst.Tables(0).Columns(0).ColumnName & "]=" & Valore_ID & ""
Cmq anche se la tua fosse una critica è sicuramente costruttiva e io la prendo per buona!

Che ben vengano le tue pseudo "critiche" perchè sono state molto produttive!

Non capisco perchè non debbo fare:

Codice:
Adp.DeleteCommand.CommandText = "DELETE * FROM [" & Tabella & "] WHERE [" & Dst.Tables(0).Columns(0).ColumnName & "]=" & Valore_ID & ""
Come elimino il record?
lucausa75 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v