ASP.NET e MySQL Connector

di: Gianni Marzaloni     09 Gennaio 2008

Supporto multi-resultsets

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.

Supporto per le Stored Procedure

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();

Conclusione

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.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto