+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

rinumerare un database ed una listview...

  1. #1
    minotaurus7 non è in linea Scolaretto
    Buongiorno a tutti....
    spiego il mio quesito:
    se in un dataBase cancello un record, come posso fare per rinumerarli automaticamente?
    Se ad esempio io ho 10 record in un database access archiviati, elimino il numero "4", come posso rinumerare tutti gli altri record dopo il "4" per avere sempre una numerazione continua?

    Pongo la stessa domanda anche per una ListView, evitando di rileggere il DataBase rinumerato.

    Grazie a tutti. Buona giornata.

  2. #2
    Sgrubak non è in linea Scribacchino
    Ma cosa vuoi rinumerare? Se intendi la chiave primaria, che di solito è un campo Autoincrementale, non ti serve a niente. Se invece è un tuo campo che usi per un ordinamento, puoi implementare una query di UPDATE o del codice VBA che vada ad effettuare la rinumerazione.

  3. #3
    La chiave primaria non di tocca e neanche dovresti vederla
    ℹ️ Leggi di più su AntonioG ...

  4. #4
    minotaurus7 non è in linea Scolaretto
    non è chiave primaria. E' un mio indice che ogni volta che cancello un record... vorrei si rinumerassero in ordine crescente.
    Tutto qui......
    Si può fare???
    Grazie per le vostre risposte.

  5. #5
    Mah ... secondo me non ha alcun senso e magari non ti serve a nulla. Inoltre, dato che i record all'interno del DB non hanno un ordine definito, dovresti fare una SELECT di *tutti* i record ordinati per il tuo campo indice e tanti UPDATE che servono per aggiornare tale indice contando da 1 in poi. Una operazione molto pesante e assolutamente inutile (ribadisco).

    Mai sentito che ci fosse bisogno di una cosa del genere.
    ℹ️ Leggi di più su AntonioG ...

  6. #6
    minotaurus7 non è in linea Scolaretto
    grazie Antonio..... io sto studiando, per così dire!! La mia è una ipotesi se mai avessi bisogno. Il programma che sto facendo è solo un prototipo con tante opzioni, ed il mio chiedere è solo per comprendere, se mai ne avessi bisogno, come si può fare, se si può fare.
    comunque ti ringrazio per la tua disponibilità.
    notte.

  7. #7
    minotaurus7 non è in linea Scolaretto
    Ringrazio sempre per la vostra disponibilità...
    Comunque ho semplicemente usato lo stesso metodo che usavo in visual basic, lascio il metodo per chi ne avesse bisogno.
    string strsql = ("UPDATE Nome Tabella SET ID=ID-1 WHERE ID > ?; ");
    
    Grazie di nuovo.
    Per la ListView, esiste un modo per rinumerarli senza far leggere nuovamente il DataBase?

    buona giornata a tutti.

  8. #8
    Sgrubak non è in linea Scribacchino
    Il punto che sottolinea Antonio è che molto probabilmente quel che cerchi di fare non serve. La situazione che immagini, si potrebbe gestire in altro modo... Anche perché gli ID non si toccano. Li hai magari come FK...

    Onestamente anche io mi son ritrovato a voler dei record secondo un preciso ordine da me deciso (la schedulazione della produzione dei particolari della mia azienda). Il mio approccio è stato quello di definire un campo [Riga] nel DB che mi permettesse di avere l'ordine di esecuzione dei pezzi da produrre. Come fa notare Antonio, se da un lato è la soluzione più immediata, comporta poi un sacco di accortezze per mantenere poi la tabella "a posto" (nel nostro caso avere sempre una numerazione crescente e senza buchi).

    Potresti pensare di eseguire un comando di UPDATE simile a:
     UPDATE Tabella
    Set NumeroRiga = NumeroRiga - 1
    Where NumeroRiga > NumeroRigaCancellata
    
    Oppure ciclare le varie righe, modificare la numerazione e poi lasciare l'update al TableAdapter (ammesso che tu stia utilizzando ADO.NET o il Wizard di VS - che ti sconsiglio caldamente - per accedere a i dati)

    Oppure chiarire bene il tuo scenario per valutare magari altre alternative...

  9. #9
    minotaurus7 non è in linea Scolaretto
    Grazie anche a te, Sgrubak
    per l'interessamento... Proverò anche la tua idea. Comunque come ho detto sopra, ho provato ad aggiustare quell'update che usavo in visual basic e sembra fare il suo lavoro.
    Ripeto: comprendo che non serve toccare la PK, ma io sto solo cercando di capire le cose. Questo programma che sto costruendo, non ha nessuna finalità, se non quello di sapere, capire come si fanno le cose in questo(per me), nuovo linguaggio. Nel programma ci sono solo tante funzioni che mi devono solo far comprendere, niente di più.
    Comunque, ringrazio tutti voi che mi avete dato risposte.
    Grazie.

    Ma idee per rinumerare la ListView senza dover leggere nuovamente il DB??

  10. #10
    Sarebbe meglio rileggere il db per la listview per evitare problemi.

    Il fatto è che, se vuoi imparare, non dovresti continuare a chiedere cose che ti sono state già indicate come sbagliate.

    Non si rinumera la PK, lascia stare, non c'è altro discorso che tenga.
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. [VB15]: ListView e connessione con database excel....
    Da maninblack nel forum Visual Basic .Net
    Risposte: 5
    Ultimo Post: 04-08-2017, 06:49
  2. Popolare listview da database access
    Da krossk2 nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 19-04-2011, 07:04
  3. Rinumerare tutti i record selezionati
    Da aldodellacasa nel forum Visual Basic 6
    Risposte: 14
    Ultimo Post: 27-04-2010, 17:20
  4. Inserire icone in ListView da database
    Da Nottambulo nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 25-09-2009, 19:12
  5. [ACCESS VBA] rinumerare colonna
    Da Gordian nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 19-10-2006, 21:32