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