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

    [VB .NET 2010] Id dell'ultima riga inserita

    Sto uscendo pazzo da 4 ore su questa insert:
    [list=1][*]Creo una riga di tipo videoRow[*]Popolo la riga con i dati necessari[*]Effettuo l'inserimento[*]Eseguo l'update del dataset per far inserire la riga[*]Non so da dove prendere l'id della riga inserita[/list=1]

    Il codice si trova qui: http://pastebin.com/gCitbYws (non so per quale strano motivo non me lo faceva postare qui)

    Non ho usato il metodo VideoTableAdapter.Insert(parametro1, parametro2, ...) poiché non so per quale motivo invece di DBNull.Value, pretende il valore Nothing... Peraltro questo metodo non accetta nemmeno un dataRow, così avrei subito risolto passandogli newRow

  2. #2
    Preciso che sto utilizzando MySQL
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  3. #3
    Il titolo della discussione non è conforme al regolamento, mandami per favore un messaggio privato con la rettifica.
    Chi non cerca trova.

  4. #4
    Ho risolto effettuando una SELECT dell'ultima riga della tabella, ma questa cosa non mi sembra molto atomica... se un altro utente ha inserito una riga rischierei di prendere quella sua, non la mia. Esiste un modo per fare le Transazioni senza toccare codice SQL, ma in via grafica tramite ADO.NET?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  5. #5

  6. #6
    Originariamente inviato da tas
    Prova a leggere qui:
    http://dev.mysql.com/doc/refman/5.0/...unique-id.html
    La funzione che dici tu restituisce l'ultimo id inserito (indipendentemente dalla tabella). Quindi cosa accadrebbe se in un altro form, contemporaneamente stessi aggiungendo in un'altra tabella del DB un dato?

    Penso si debba gestire l'insert + last_insert_id in una transazione, ma come?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  7. #7
    Se leggi nella guida:
    "The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients".

    Ora mi sembra improbabile che contemporaneamente, in un altro form, tu vada a scrivere dati in un altra tabella, a meno che tu non stia scrivendo un'applicazione multi-thread. Anche in quest'ultimo caso, comunque, basterebbe aprire più connessioni...
    Chi non cerca trova.

  8. #8
    Originariamente inviato da tas
    Se leggi nella guida:
    "The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients".

    Ora mi sembra improbabile che contemporaneamente, in un altro form, tu vada a scrivere dati in un altra tabella, a meno che tu non stia scrivendo un'applicazione multi-thread. Anche in quest'ultimo caso, comunque, basterebbe aprire più connessioni...
    In realtà il form principale della mia applicazione sarà uno schedulatore automatico di eventi, che andrà periodicamente a scrivere in una tabella di LOG. Quindi è molto probabile che ci siano conflitti.

    Per quanto riguarda l'istanziazione di più connessioni (che è, direi, la soluzione più affidabile), si potrebbe tranquillamente fare, ma dato che fino ad ora ho utilizzato i DataSet e TableAdapter generati automaticamente da VisualStudio, non so, esiste un modo più pulito oppure devo per forza istanziare lato codice mio?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

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.