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:
e così via!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
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
concodice:SELECT LAST_INSERT_ID()
Col dataset come faccio?codice:dim ultimoId as integer= mioCmd.executeScalar
Io per inserire una nuova riga faccio così:
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!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)
Sono proprio a digiuno di questo medoto offline![]()

Rispondi quotando