Académique Documents
Professionnel Documents
Culture Documents
NET
Achref El Mouelhi
elmouelhi.achref@gmail.com
1 Introduction
ADO.NET
ADO.NET
ADO.NET
ADO.NET
ADO.NET
https://dev.mysql.com/downloads/windows/visualstudio/1.2.html
ADO.NET
Ensuite
Installer les deux
(Re)lancer Visual Studio
Créer un nouveau projet C# (console)
ADO.NET
Pour utiliser une base de données MySQL dans un projet C#, il
faut l’ajouter en tant que référence
ADO.NET
Pour utiliser une base de données MySQL dans un projet C#, il
faut l’ajouter en tant que référence
Étapes
Dans l’Explorateur de solutions, faire un clic droit sur
Références et choisir Ajouter une référence
Ouvrir le menu Assemblys et cliquer sur Extensions
Chercher MySql.Data et cocher la case correspondante
Valider en cliquant sur Ok
ADO.NET
Pour utiliser une base de données MySQL dans un projet C#, il
faut l’ajouter en tant que référence
Étapes
Dans l’Explorateur de solutions, faire un clic droit sur
Références et choisir Ajouter une référence
Ouvrir le menu Assemblys et cliquer sur Extensions
Chercher MySql.Data et cocher la case correspondante
Valider en cliquant sur Ok
ADO.NET
ADO.NET
Construire la chaı̂ne de connexion
MySqlConnectionStringBuilder conn = new
MySqlConnectionStringBuilder();
conn.Server = "localhost";
conn.UserID = "root";
conn.Password = "";
conn.Database = "myBase";
//conn.SslMode = MySqlSslMode.None;
conn.Port = 3306;
var connString = conn.ToString();
ADO.NET
Construire la chaı̂ne de connexion
MySqlConnectionStringBuilder conn = new
MySqlConnectionStringBuilder();
conn.Server = "localhost";
conn.UserID = "root";
conn.Password = "";
conn.Database = "myBase";
//conn.SslMode = MySqlSslMode.None;
conn.Port = 3306;
var connString = conn.ToString();
Établir la connexion
MySqlConnection mySqlConnection = new
MySqlConnection(connString);
mySqlConnection.Open();
H & H: Research and Training 10 / 25
CRUD avec ADO.NET
ADO.NET
Préparer la commande
String query = "select * from personne";
MySqlCommand mySqlCommand = new MySqlCommand(query,
mySqlConnection);
ADO.NET
Préparer la commande
String query = "select * from personne";
MySqlCommand mySqlCommand = new MySqlCommand(query,
mySqlConnection);
ADO.NET
Une deuxième solution (plus verbeuse) avec MySqlDataAdapter et DataSet
ADO.NET
Une deuxième solution (plus verbeuse) avec MySqlDataAdapter et DataSet
using System.Data;
ADO.NET
DataSet vs DataReader
DataReader : fonctionne en mode connecté.
DataSet : fonctionne en mode déconnecté.
DataReader : plus rapide
DataSet : explicitement conçu pour un accès aux données
indépendamment de toute source de données (XML, Base de
données...)
ADO.NET
Insérer une personne dans la base de données avec une requête paramétrée
ADO.NET
Solution avec DataSet
ADO.NET
Modifier une personne dans la base de données avec une requête paramétrée
ADO.NET
Supprimer une personne dans la base de données avec une requête paramétrée
ADO.NET
Organisation du code
La classe MyConnexion
using MySql.Data.MySqlClient;
namespace MyProject {
class MyConnexion {
private static MySqlConnection mySqlConnection;
private MyConnexion() {
MySqlConnectionStringBuilder conn = new
MySqlConnectionStringBuilder();
conn.Server = "localhost";
conn.UserID = "root";
conn.Password = "";
conn.Database = "jdbc";
conn.SslMode = MySqlSslMode.None;
conn.Port = 3306;
var connString = conn.ToString();
mySqlConnection = new MySqlConnection(connString);
try {
mySqlConnection.Open();
}
catch(MySqlException e) {
mySqlConnection = null;
Console.WriteLine(e.StackTrace);
}
}
ADO.NET
La classe MyConnexion (suite)
public Personne()
{
}
public Personne(String nom, String prenom)
{
Nom = nom;
Prenom = prenom;
}
public Personne(int num, String nom, String prenom)
{
Num = num;
Nom = nom;
Prenom = prenom;
}
}
}
H & H: Research and Training 21 / 25
Classes connexion et DAL
ADO.NET
L’interface IPersonne
namespace MyProject
{
public interface IPersonne
{
int Save(Personne personne);
int Update(Personne personne);
int Delete(int id);
List<Personne> FindAll();
Personne FindById(int id);
}
}
ADO.NET
La classe PersonneRepository
namespace MyProject
{
public class PersonneRepository : IPersonne
{
if (mySqlConnection != null)
{
String query = "select * from personne";
MySqlCommand mySqlCommand = new MySqlCommand(query, mySqlConnection);
result = mySqlCommand.ExecuteReader();
while (result.Read())
{
personnes.Add(new Personne(Int32.Parse(result[0].ToString()), result[1].
ToString(), result[2].ToString()));
}
result.Close();
MyConnexion.CloseConnection();
return personnes;
}
ADO.NET
La classe PersonneRepository (suite)
ADO.NET
class Program
{
static void Main(string[] args)
{
PersonneRepository personneRepository = new
PersonneRepository();
List<Personne> personnes = personneRepository.FindAll();
personnes.ForEach(personne => Console.WriteLine(personne.
Nom + " " + personne.Prenom));
Console.WriteLine("Fin");
}
}