L’objectif de ce tutoriel (premier du module 6) est d’explorer certaines capacités de Visual Studio et ASP.NET à gérer et à créer des applications de bases de données.
Etape 1 – Connexion à AdventureWorks
L’objectif de cette étape est d’utiliser l’explorateur de serveur de Visual Studio 2012 dans le but de se connecter à une base de données.
- Ce tutoriel requiert que la base de données « AdventureWorks » soit jointe à SQL Server. Pour télécharger cette base, accédez au site : http://sqlserversamples.codeplex.com/
- Lancez VS 2012
- Dans le menu, sélectionnez « Affichage à Explorateur de Serveur »
- La fenêtre ci-dessous s’affiche
- Sur le nœud « Connexion de données », cliquez sur le bouton droit puis « Ajouter une connexion »
- La fenêtre ci-dessous s’affiche :
- A côté de la zone « Sources de données », cliquez sur « Changer »
- La fenêtre ci-dessous s’affiche
- Remarquez les bases de données auquel .NET peut accéder
- Cliquez sur « Annuler »
- Dans la zone « Nom du serveur » tapez « . » ou « .\SQLExpress » selon la version de SQL Server dont vous disposez
- Dans la liste se connecter à la base, sélectionnez « AdventureWorksLT2008R2 »*
- Cliquez sur « Tester la connexion » pour vérifier que ça marche
- Cliquez sur « OK »
- Remarquez que VS a ajouté un nouveau nœud sous les connexions de données pointant sur la base de données « AdventureWorks »
- Développez le nouveau nœud créé
- Le nœud contient un enfant appelé « tables », développez-le et remarquez que les tables de la base de données sont listées
- Cliquez avec le bouton droit sur la table « Product »
- Cliquez sur « Afficher les Données de la table »
- Une grille s’affiche contenant tous les enregistrements de la table « Product »
Etape 2 : Création d’une base de données
L’objectif de cette étape est d’utiliser l’explorateur de serveur afin de créer une nouvelle base de données, d’y créer des tables et des données de test.
- Dans l’explorateur de serveur, cliquez avec le bouton droit sur « Connexions de données »
- Cliquez sur « Créer une nouvelle base de données SQL Server »
- Dans la zone « Nom du serveur », tapez « . » ou « .\SQLExpress » selon la version de SQL Server dont vous disposez
- Dans la zone « Nom de la nouvelle base de données », entrez « Formation »
- Cliquez sur « OK ».
- Dans l’explorateur de serveur, cliquez sur le nœud « Tables » de la nouvelle base de données avec le bouton droit
- Sélectionnez « Ajouter une nouvelle table »
- Ajoutez une colonne avec le nom « Numero », le type « int » qui n’accepte pas les valeurs vides
- Ajoutez une colonne avec le nom « Titre », le type « nvarchar(200) » qui n’accepte pas les vides
- Ajoutez une colonne avec le nom « Annee », le type « int » qui n’accepte pas les vides
- Cliquez avec le bouton droit sur la ligne contenant la colonne « Numero » et sélectionnez « Clé Primaire »
- Dans la barre à outils de VS, cliquez sur le bouton « Enregistrer »
- VS demande ensuite le nom de la table, entrez « Film »
- Cliquez sur « OK »
- Dans le nœud « Tables » dans l’explorateur de serveur, cliquez avec le bouton droit sur la table « Film »
- Sélectionnez « Afficher les données »
- En utilisant la fenêtre nouvellement affichées, saisissez quelques films
- Fermez la fenêtre
- Cliquez avec le bouton droit sur la base de données « Formation » dans l’explorateur de serveur
- Cliquez sur Propriétés
- La fenêtre de propriétés s’affiche
- Remarquez la propriété « Connection String », c’est cette propriété que va utiliser les applications web pour se connecter à la base de données
Etape 3 : Accès à la base de données en mode connecté
L’objectif de cette étape est d’utiliser l’API ADO.NET afin de se connecter à une base de données en mode connecté. L’affichage se fera suite à la création d’une connexion, d’une commande SQL ramenant tous les films puis la lecture et l’affichage des enregistrements un par un.
- Créez une application ASP.NET vide appelée « TestADO »
- Ajoutez une forme web appelée « Default.aspx »
- Ajoutez un composant « Literal » à la page « Default »
- Appuyez sur « F7 » pour accéder au code behind
- Modifiez l’évènement Page_Load comme suit :
protected void Page_Load(object sender, EventArgs e)
{
int numero, annee;
string titre, ligne;
using (SqlConnection connection = new SqlConnection("chaine_connection"))
{
connection.Open();
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT Numero, Titre, Annee FROM Film";
using (DbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
numero = reader.GetInt32(0);
titre = reader.GetString(1);
annee = reader.GetInt32(2);
ligne = string.Format("{0} | {1} | {2} <br/>", numero, titre, annee);
Literal1.Text += ligne;
}
}
}
}
}
- Remplacez « chaine_connection » par la chaîne de connexion de la base de données « Formation » que vous pouvez récupérer à partir de l’explorateur de serveur
- Appuyez sur « F5 » pour exécutez
Etape 4 : Accès à la base en mode déconnecté
L’objectif de cette étape est de pouvoir utiliser les capacités d’ADO.NET de se connecter à une base de données en mode déconnecté. Il s’agira de la création d’un ensemble de données (DataSet) fortement typé puis de peupler une table à partir des résultats du « DataSet ».
- Ajoutez au projet une nouvelle forme web appelée « Connected.aspx »
- Cliquez sur le projet « TestADO » avec le bouton droit puis cliquez sur « Ajouter un nouvel élément »
- A gauche, sélectionnez « Données »
- Sélectionnez le modèle ensemble de données « DataSet »
- Dans la zone « Nom », entrez « FormationDataSet »
- Cliquez sur OK
- Visual Studio crée un ensemble de données vide
- Affichez l’explorateur de serveurs
- A partir de la base de données « Formation », glissez la table « Film » sur la fenêtre de l’ensemble de données
- Ouvrez la page « Connected.aspx » en mode conception
- A partir de la boîte à outils, faites glisser un composant « Table » depuis l’onglet « Standard »
- Appuyez sur « F7 » pour passer au vue code
- Changez le code de la méthode « Page_Load » comme suit :
TableRow row;
TableCell cell;
protected void Page_Load(object sender, EventArgs e)
{
cell = new TableCell();
cell.Text = dataRow.Numero.ToString();
row.Cells.Add(cell);
using (FormationDataSet dataSet = new FormationDataSet())
{
using (FilmTableAdapter adapter = new FilmTableAdapter())
{
adapter.Fill(dataSet.Film);
}
foreach (TestADO.FormationDataSet.FilmRow dataRow in dataSet.Film.Rows)
{
row = new TableRow();
cell = new TableCell();
cell.Text = dataRow.Numero.ToString();
row.Cells.Add(cell);
cell = new TableCell();
cell.Text = dataRow.Titre;
row.Cells.Add(cell);
cell = new TableCell();
cell.Text = dataRow.Annee.ToString();
row.Cells.Add(cell);
Table1.Rows.Add(row);
}
}
}
- Appuyez sur « F5 » pour exécuter
Pour télécharger le code associé, cliquez ici