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

    [VB.NET] - Dataset disconnesso e foreign_key

    Ciao a tutti!
    Cercherò di essere il più breve possibile:
    Io di norma programmo con una connessione sempre aperta al database MySQL e la mia programmazione è di norma piuttosto "libera" nell'eseguire i comandi dacchè non uso i dataset ma mi costruisco i comandi volta per volta!

    Un esempio di insert:

    codice:
    dim mioCmd as new mysqlCommand("INSERT INTO miaTab (mioCampo1, mioCampo2) VALUES (@mioCampo1, @mioCampo2)",miaConn)
    mioCmd.parameters.add("@mioCampo1",mysqlDBtype.VarChar).value="ciao"
    mioCmd.parameters.add("@mioCampo2",mysqlDBtype.VarChar).value="mondo!"
    try
       mioCmd.executeNonQuery
    catch ex as exception
       msg(ex.message)
    end try
    e così via!
    Adesso però (dopo aver letto un po ovunque che è meglio) mi sto provando a cimentare nella programmazione "disconnessa" ovvero all'apertura del programma mi connetto al DB e popolo un dataset tipizzato che ho creato all'interno del progetto e poi disconnetto la connessione!

    Così mi trovo il DataSet con tutti i dati e posso lavorare OffLine per poi riaggiornare il dataBase quando ho finito!

    Il mio primo dubbio/problema è:

    Come gestisco le foreign key delle tabelle? Ci son varie relazioni tra le tabelle e di solito gestivo tutto con le transazioni (in modo da avere anche un rollback) e per ottenere l'ultimo id inserito usavo un nuovo comando MysqlCommand che eseguiva

    codice:
     SELECT LAST_INSERT_ID()
    con

    codice:
    dim ultimoId as integer= mioCmd.executeScalar
    Col dataset come faccio?

    Io per inserire una nuova riga faccio così:

    codice:
          Dim miariga As DataRow = dsGlobale.miaTab.NewRow
            miariga("ragioneCli") = "Veronica Demontis"
            miariga("nomeCli") = "Veronica"
            miariga("cognomeCli") = "Demontis"
            miariga("cfCli") = "AAAAAAAAAAAAAAA"
            dsGlobale.miaTab.Rows.Add(miariga)
    e così ok mi ritrovo la riga nel dataset ma come ottengo l'id se non l'ha ancora messa nel db? L'id che mi servirà per i vari collegamenti tra tabelle!
    Sono proprio a digiuno di questo medoto offline

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    inoltre non ho idea di come usare il commandBuilder per fare l'update nel database visto che avendo un dataset già popolato e tipizzato non mi trovo oggeti dataAdapter da usare per il commandBuilder stesso!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    352
    Per lavorare disconnessa, devi per prima cosa conoscere gli oggetti che dovrai usare:
    TableAdapter, BindingSource.
    Conosci questi oggetti?

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    mmm no i bindingsource sinceramente no!

    I tableAdapter li ho sempre usati per effetturare il FILL di un dataset.
    In sostanza creo un command che poi associo al tableAdapter e poi effettuo il fill!

    Niente di +

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    352
    Intanto di dico che lavorando in maniera disconnessa, le eventuali ID (autoincrementate) vengono gestite dal dataset ed aggiornate nel database al momento del comando TableAdapter.UpdateAll. Queste id vengono gestite usando numeri negativi -1,-2,....
    al momento della scrittura dati sul db vengono aggiornate con l'id giusta fornita dal database.

    Ti consiglio comunque di fare una prova con un semplice form con una sola tabella:
    - aggiungi l'origine dati al progetto selezionando la tua tabella
    - vai nel form e ci trascini la tua tabella dalle origini dati del progetto

    poi dai un occhiata ai vari componenti che vengono creati automaticamente e fai alcune prove.

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.