Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [VB.NET] - Aggiornamento tabelle dataset collegate

    Ciao a tutti vi spiego qual'è il mio dubbio!

    Io pesco dei dati da dei file Excel e li inserisco nel mio dataset usando un dataAdapter OleDB con il quale faccio il "fill" del dataset.

    Poi ciclando sul dataset appena fillato pesco i dati e li inserisco in un altro dataset che poi uso per l'update del mio database mySQL.

    Uso questo metodo:

    codice:
    For Each riga As DataRow In tabXLS.Rows
         Dim newRiga As DataRow = tabDb.NewRow
         newRiga("mioCampo1") = riga("F2")
         newRiga("mioCampo2") = riga("F3")
         newRiga("mioCampo3") = riga("F4")
         newRiga("mioCampo4") = riga("F66")
         tabDb.Rows.Add(newRiga)
    Next
    Dim cmdBuild As New MySql.Data.MySqlClient.MySqlCommandBuilder(datAdapterDB)
    datAdapterDB.UpdateCommand = cmdBuild.GetUpdateCommand()
    datAdapterDB.Update(tabDb)
    Funziona tutto alla grande! Ora mi trovo a dovere affontare un dubbio.
    Questa tabella contiene le anagrafiche dei dipendenti, vie è nel DB un'altra tabella con i numeri di telefono che son collegati (con una foreign_key) alla tabella dei dipendenti.

    Come faccio ad ottenere l'id del dipendente in modo da poter popolare il campo apposito nella tabella "telefoni" affinchè quel record venga associato al dipendente di competenza?

    Spero di esser stata chiara è + facile a farsi che a dirsi sicuramente :P

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    :° son disperata....non riesco ad ottenere sto cavolo di id...xD

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Veronica80
    :° son disperata....non riesco ad ottenere sto cavolo di id...xD
    E' ovvio che devi caricalro dalla tabella dei dipendenti, non mi sembra difficile.

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    eh? Scusa gibra non trovo nessun senso in quello che hai detto!

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Veronica80
    eh? Scusa gibra non trovo nessun senso in quello che hai detto!
    Ed io non trovo alcun senso in questa frase.

  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    che vuol dire che devo caricarlo dalla tabella dipendenti? Sei sicuro di aver capito cosa sto chiedendo?

    io ho una riga unica su un file excel dove ci sono i dati anagrafici e il numero di telefono!
    Quando leggo l'excel inserisco un record nel mio datatable con i dati anagrafici e dovrei inserirne anche uno correlato nella tabella recapiti il problema è che nel record della tabella recapiti devo inserire l'id del dipendente APPENA INSERITO nell'altra datatable e non riesco a recuperarlo.

    Quando usavo i cmd.execute usavo @@Identity o scope_identity solo che qui voglio evitare di eseguire le query 1 a 1 perchè se poi va in errore mi rimane l'importazione a metà.

    Invece io metto tutto nelle data table e poi lancio un update della tabella del DB basato sullo status finale delle mie datatables!

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Veronica80
    che vuol dire che devo caricarlo dalla tabella dipendenti? Sei sicuro di aver capito cosa sto chiedendo?
    Direi proprio di sì.

    Il tuo problema è che non hai l'ID del dipendente, giusto?
    E dove puoi trovarlo, se non nella tabella dipendenti?

    A meno che tu non l'abbia anche da 'qualche altra parte', ma noi non possiamo certo indovinarlo, questo.


  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Si certo che ho l'id nella tabella ma non so qual'è visto che il comando "update" del dataadatper non mi passa sto dato...

    Hai visto come aggiungo i record? Prima metto tutto nel dataset poi lancio un update (in modo da aggiornare il DB).

    Ho aggiunto un handler all'evento "Updated" che mi lancia una sub che esegue il comando "SELECT @@Identity" ma non cambia...Semplicemente mi prende l'ultimo id (prima dell'update) e inizia il conteggio dei nuovi id da li...mentre il database ha il suo autoincrement che va avanti sempre (e se ci son record eliminati continua)

    Es:
    ID 1
    ID 2
    ID 3

    se cancello ID 3 il record che inserirò dopo sarà cmq ID 4 e otterrò:

    ID 1
    ID 2
    ID 4

    Mentre lo @@Identity mi da cmq ID 3...

    E' un casino da spiegare a parole xD

  9. #9
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    forse sto sbagliando il modo di creare il dataAdapter? ve lo posto

    codice:
    Dim daDB as  New MySql.Data.MySqlClient.MySqlDataAdapter("SELECT * FROM anagrafica", cn)
                daDB.MissingSchemaAction = MissingSchemaAction.AddWithKey
                daDB.Fill(dsDb, "anagrafica")
    Perchè creando così il dataAdapter e facendo il fill quando poi vado a creare una nuova datorow come id ci mette appunto quello successivo a quello dell'ultimo id (ma in fase di insert poi mysql non segue quell'ordine bensì l'id assoluto [contando quindi anche gli id già messi che son stati cancellati])

  10. #10
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Originariamente inviato da Veronica80
    Si certo che ho l'id nella tabella ma non so qual'è visto che il comando "update" del dataadatper non mi passa sto dato...

    Hai visto come aggiungo i record? Prima metto tutto nel dataset poi lancio un update (in modo da aggiornare il DB).

    Ho aggiunto un handler all'evento "Updated" che mi lancia una sub che esegue il comando "SELECT @@Identity" ma non cambia...Semplicemente mi prende l'ultimo id (prima dell'update) e inizia il conteggio dei nuovi id da li...mentre il database ha il suo autoincrement che va avanti sempre (e se ci son record eliminati continua)

    Es:
    ID 1
    ID 2
    ID 3

    se cancello ID 3 il record che inserirò dopo sarà cmq ID 4 e otterrò:

    ID 1
    ID 2
    ID 4

    Mentre lo @@Identity mi da cmq ID 3...

    E' un casino da spiegare a parole xD
    Strano ti dovrebbe uscire l'id del database.

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.