Si vous n'avez pas seulement travaillé dans une entreprise d'un grand groupe, vous aurez certainement l'occasion d'entrer en contact avec MySQL. Même s'il ne prend pas en charge le traitement des transactions et les procédures stockées, les fonctions qu'il propose répondront certainement à la plupart de vos besoins. , c'est concis. MySQL présente également des avantages uniques. Dans certains cas, sa vitesse est encore plus rapide que celle des grandes bases de données.
Alors, comment accéder à la base de données MySQL en .NET ? Peut-être que beaucoup de gens diront immédiatement : utilisez OLEDB, mais en fait, en utilisant le fournisseur de données .NET OleDb, vous ne pouvez pas accéder à MySQL. Si vous l'utilisez, le système vous demandera : « Le fournisseur Net Data OLE DB (System.Data.Odbc) ne le fait pas. Prise en charge du fournisseur MSDASQL (fournisseur Microsoft OLE DB pour le pilote Odbc). Je ne sais pas pourquoi, selon l'auteur de MySQLDriverCS, il a été "abandonné par le propriétaire".
Heureusement, nous avons d'autres options. Voici deux façons d'accéder à la base de données MySQL.
Utilisation d'ODBC.NET
ODBC.NET (nom complet ODBC .NET Data Provider) est un composant complémentaire gratuit de .NET Framework qui doit être téléchargé à partir du site Web de Microsoft. L'adresse de téléchargement est : http://download.microsoft.com. /download/ dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi , ce qui nécessite que MDAC 2.7 ou supérieur soit installé sur le système. De plus, vous devez également installer le pilote ODBC pour MySQL. L'adresse de téléchargement est : http://www.mysql.com/downloads/api-myodbc-2.50.html . Vous devez également configurer le DSN dans le fichier "ODBC. Gestionnaire de sources de données".
En termes de conception d'objets, ODBC.NET est identique à OLEDB, SQL, etc., à savoir OdbcConnection, OdbcCommand, OdbcDataAdapter, OdbcDataReader. L'utilisation est exactement la même si vous souhaitez utiliser ODBC .NET pour remplacer le précédent OleDb. NET Data Provider, en fait, vous pouvez modifier complètement votre programme en recherchant et en remplaçant.
Voici un exemple de code :
essayez
{
chaîne construction = "DSN=MySQL;" + "UID=";
conn = new OdbcConnection(constr);
conn.Open();
requête de chaîne = "insérer dans test.dbtable valeurs10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')" ;
chaîne tmp = null ;
OdbcCommand cmd = new OdbcCommand(query, conn);
pour (int i = 0; i < 100000; i++)
{
cmd.ExecuteNonQuery();
}
cmd.Dispose();
conn.Close();
query = "select * from test.dbtable";
OdbcCommand cmd2 = newOdbcCommand(query, conn);
conn.Open();
Lecteur OdbcDataReader = cmd2.ExecuteReader();
pendant que(lecteur.Read())
{
tmp = lecteur[0].ToString();
tmp = lecteur[1].ToString();
tmp = lecteur[2].ToString();
tmp = lecteur[3].ToString();
}
conn.Close();
query = "supprimer de test.dbtable" ;
OdbcCommand cmd3 = newOdbcCommand(query, conn);
conn.Open();
cmd3.ExecuteNonQuery();
}
attraper(Exception ex)
{
MessageBox.Show(ex.Message);
}
enfin
{
conn.Close();
}
Quiconque a écrit une application de base de données en C# doit savoir que le code ci-dessus effectue des opérations d'insertion et de lecture de données cent mille fois, et supprime finalement tous les enregistrements de données.
La plupart des gens ne le savent peut-être pas
lorsqu'ils utilisent MySQLDriverCS
. MySQLDriverCS est un pilote .NET gratuit et open source pour la base de données MySQL.Tout comme Sql .NET Data Provider est destiné à Sql Server, il est spécialement conçu pour MySQL et peut être appelé MySQL .NET Data Provider. Il n'est pas nécessaire de configurer une source de données ODBC supplémentaire pour l'utiliser. Fondamentalement, tant que vous pouvez vous connecter à MySQL, vous pouvez y accéder via MySQLDriverCS.
MySQLDriverCS est un projet sur SourceForge.NET, mais pour une raison inconnue, ce site Web n'est pas accessible en Chine.
Voici un exemple de code utilisant MySQLDriverCS :
MySQLConnection conn = null;
essayer
{
string connstr = "Source de données=MySQL;Mot de passe=root;ID utilisateur=root;Location=localhost";
conn = new MySQLConnection(constr);
conn.Open();
requête de chaîne = "insérer dans les valeurs test.dbtable (10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')" ;
chaîne tmp = null ;
MySQLCommand cmd = new MySQLCommand(query, conn);
pour (int i = 0; i < 100000; i++)
{
cmd.ExecuteNonQuery();
}
cmd.Dispose();
conn.Close();
query = "select * from test.dbtable";
MySQLCommand cmd2 = new MySQLCommand(query, conn);
conn.Open();
Lecteur MySQLDataReader = cmd2.ExecuteReaderEx();
pendant que(lecteur.Read())
{
tmp = lecteur[0].ToString();
tmp = lecteur[1].ToString();
tmp = lecteur[2].ToString();
tmp = lecteur[3].ToString();
}
conn.Close();
query = "supprimer de test.dbtable" ;
MySQLCommand cmd3 = new MySQLCommand(query, conn);
conn.Open();
cmd3.ExecuteNonQuery();
}
attraper(Exception ex)
{
MessageBox.Show(ex.Message);
}
enfin
{
conn.Close();
}
C'est presque exactement le même que le code ci-dessus. La différence est que Odbc est devenu MySQL. De plus, une chose à noter est que la méthode ExecuteReader de Command est devenue ExecuteReaderEx dans MySQLDriverCS. document ci-joint pour plus de détails.
Tests de performances
Certains lecteurs ont effectivement vu le but du code que j'ai écrit ci-dessus. D'ailleurs, le but est en fait d'effectuer des tests de performances. Le temps d'exécution des deux morceaux de code ci-dessus est : environ 24 secondes pour ODBC.NET et environ 17 secondes pour MySQLDriverCS. Les résultats ne sont pas surprenants. En tant que pilote de données dédié à MySQL, il est raisonnable que MySQLDriverCS soit beaucoup plus rapide qu'ODBC.NET.
Résumé
Cet article présente deux méthodes d'accès à la base de données MySQL et effectue un test simple sur leurs performances. J'espère qu'il pourra fournir aux lecteurs une référence précieuse lors de l'utilisation de la base de données MySQL pour développer des applications .NET.