di: Gianni Marzaloni 09 Gennaio 2008
Altra, attesa, novità del MySqlDataAdapter è il supporto per le multi query. Indicando ad esempio più query di selezione, MySqlDataAdapter crea una tabella nel DataSet (o un risultato nel DataReader) per ogni query:
String sql = "SELECT * FROM tabella1;SELECT * FROM tabella2;SELECT * FROM tabella3;";
MySqlDataAdapter cm = new MySqlDataAdapter(sql, cn);
cm.Fill(ds);
// ora nel DataSet sono presenti 3 tabelle
// con i risultati delle 3 SELECT appena eseguite
Inizialmente questa innovazione ha dato non pochi problemi agli sviluppatori del team ma, dopo svariate verifiche, ho potuto constatare anche di persona il corretto funzionamento in ambiente multi-resultsets rilasciato con le ultime versioni dei Connector.
Con la versione 5.0 del server MySQL possiamo finalmente utilizzare procedure all'interno del database e richiamarle da codice inviando eventuali parametri in entrata/uscita. Per richiamare una semplice procedura come questa (che "prende" tutti gli utenti con data di nascita maggiore/uguale a quella indicata come parametro):
CREATE DEFINER='root'@'localhost' PROCEDURE 'RecuperaUtenti'(
IN Data TIMESTAMP
)
BEGIN
SELECT * FROM Tabella WHERE (Tabella.DataNascita >= Data);
END
Basterà scrivere un codice del genere:
MySqlConnection cn = new MySqlConnection(stringaConnessione);
MySqlCommand cm = new MySqlCommand();
// imposta la connessione
cm.Connection = cn;
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "RecuperaUtenti"; // nome della stored da richiamare
// apre la connessione
cm.Connection.Open();
// prepara il parametro in entrata
MySqlParameter p = new MySqlParameter("?Data", MySqlDbType.Timestamp);
p.Value = Convert.ToDateTime("01/01/1980");
cm.Parameters.Add(p);
// esegue la stored, popolando un DataReader
MySqlDataReader dr = cm.ExecuteReader();
//
// qui posso usare il DataReader
//
// chiude tutto
dr.Close();
cn.Close();
I Connector/Net vengono pubblicati mediante licenza GPL e sono aggiornati frequentemente dal team MySQL. Attenzione però: durante le prime versioni erano presenti numerosi bug che hanno reso faticose intere giornate di lavoro per chi (come me) è incappato in uno di questi. Con la versione 5.1 si è raggiunta una buona stabilità e l'integrazione con Visual Studio rende ancora più piacevole l'utilizzo del database MySQL in ambiente Microsoft. Lo sviluppo di MySQL si sta quindi facendo molto interessante anche per tutti quei sviluppatori .NET che ancora non hanno testato uno dei diretti concorrenti, in ambiente Web, di MSSQL.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |