Академический Документы
Профессиональный Документы
Культура Документы
NET - OpenClassrooms
Accueil > Cours > Apprenez à programmer en VB .NET > La communication VB .NET - BDD
20 heures Facile
Connectez-vous ou inscrivez-vous gratuitement pour béné cier de toutes les fonctionnalités de ce cours !
Maintenant que nous avons toutes les clés en main pour pouvoir créer et remplir notre base de
données, je pense que vous avez envie de vous amuser un peu avec ? Ça tombe bien, c'est dans ce
chapitre que nous allons commencer à interfacer notre code VB.NET et notre base de données
fraîchement créée.
Pour cette tâche, nous allons étudier et utiliser un concept spécialement conçu pour ça : ADO.NET.
ADO.NET
ADO.NET (ActiveX Database Objects.NET) est une couche d'accès aux bases de données, c'est un
peu le SQL Server Manager de Visual Basic. ADO.NET fournit des modules pour accéder à des BDD
de différents types (Access, SQL Server, Oracle, etc.).
Pour le connecter à SQL Server, il faut SQL Server Managed Provider. Il faut donc importer le
namespace System.Data.SqlClient pour pouvoir l'utiliser.
Le fonctionnement d'ADO.NET
Créons un projet console pour apprendre le fonctionnement d'ADO.NET.
On effectue donc un Imports :
vbnet
En poursuivant votre navigation sur le site, vous acceptez l’utilisation de cookies par OpenClassrooms pour
1 Imports
vous System.Data.SqlClient
proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 1/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
requête sur la BDD (un SELECT par exemple). Puis nous allons nous servir de SqlDataReader ,
un objet qui va lire la réponse de la BDD à notre précédente requête. Cette combinaison
d'objets va nous permettre de lire une petite quantité de données. Cette solution est souvent
utilisée pour lire une entrée ou même une seule donnée.
Les accès en lecture de masse.
Ils seront effectués de la même manière que précédemment, seulement la lecture changera.
Nous allons utiliser cette fois-ci un SqlDataAdapter permettant d'adapter les données lues
pour un objet de type DataSet (comparable à un tableau). Cette méthode sera utile pour
récupérer de multiples informations (toute une table par exemple).
Les accès en écriture.
On va uniquement utiliser un objet de type SqlCommand pour exécuter une requête
d'insertion de données ou de modi cation par exemple.
Dans tous les cas, on doit se connecter à la BDD en utilisant un objet de type SqlConnection .
Voici à la gure suivante un schéma pour résumer les trois cas de gure qui se présentent à nous.
En poursuivant votre navigation sur le site, vous acceptez l’utilisation de cookies par OpenClassrooms pour
vous proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
ACCEPTER
Trois cas de gure se présentent à nous
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 2/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
Connexion à la BDD
Pour ce faire, nous devons générer une chaîne de caractères contenant les informations nécessaires
pour se connecter à notre base de données, puis l'utiliser dans un objet de type SqlConnection .
Vous pouvez trouver les chaînes de connexion vers d'autres types de BDD sur le site
http://www.connectionstrings.com/.
Création de l'objet de connexion : son constructeur prend en paramètre cette chaîne de connexion,
sinon il faut l'assigner manuellement avec un .ConnexionString :
vbnet
vbnet
1 Connexion.Open()
Il est préférable de mettre l'ouverture de connexion dans un Try… Catch (voir l'annexe de la
gestion des erreurs). Ainsi, si le serveur n'est pas accessible pour une raison X ou Y, le programme ne
plante pas et on peut gérer l'erreur :
vbnet
1 Try
2 Connexion.Open()
3 Catch ex As Exception
4 Console.WriteLine(ex.Message)
5 End Try
1 Connexion.Close()
En poursuivant votre navigation sur le site, vous acceptez l’utilisation de cookies par OpenClassrooms pour
… à mettre dans un finally par exemple.
vous proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 3/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
Comme vous l'avez vu, dans tous les cas il faut effectuer une requête grâce à l'objet SqlCommand .
Nous allons donc voir comment générer une requête et l’exécuter. Pour commencer, je souhaiterais
ajouter à ma BDD une ligne contenant un nouveau titre.
1 Dim Requete As String = "Insert into Musiques(Titre, Artiste) values ('Hotel California', 'Eagles')"
2 Dim Commande As New SqlCommand(Requete, Connexion)
Cette méthode retourne le nombre de lignes affectées par la modi cation. Dans le cas d'une
insertion, ce sera souvent 1. Mais certaines modi cations de masses (comme des update ) pourront
en modi er un grand nombre.
1 Try
2 Commande.ExecuteNonQuery()
3 Catch ex As Exception
4 Console.WriteLine(ex.Message)
5 End Try
Supposons que je veuille attribuer « Album inconnu » à chaque entrée qui n'a pas son album de
renseigné, le programme serait :
vbnet
1 Imports System.Data.SqlClient
2
3 Module Module1
4
5 Sub Main()
6
7 Dim Connexion As New SqlConnection("Data Source=localhost;Initial Catalog=SDZ;User
En poursuivant votre navigation sur le site, vous acceptez l’utilisation de cookies par OpenClassrooms pour
Id=sa;Password=********;")
vous
8 proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
9 Try
10 Connexion.Open()
11 ACCEPTER
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 4/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
12 Dim Requete As String = "UPDATE Musiques SET Album='Album inconnu' WHERE Album is null"
13 Dim Commande As New SqlCommand(Requete, Connexion)
14 Try
15 Console.WriteLine("Il y a eu " & Commande.ExecuteNonQuery() & " lignes mises à
jour")
16 Catch ex As Exception
17 Console.WriteLine(ex.Message)
18 End Try
19
20 Commande.Dispose()
21 Connexion.Close()
22
23 Catch ex As Exception
24 Console.WriteLine(ex.Message)
25 End Try
26
27 End Sub
28
29 End Module
Le résultat en BDD
Lecture de données
Maintenant que vous savez exécuter une requête d'ajout ou de modi cation, on va s'attaquer aux
requêtes de lecture. Je souhaiterais connaître l'artiste qui a chanté « Jeune Et Con ».
La requête SQL est SELECT Artiste from Musiques Where Titre = 'Jeune Et Con' .
Encrée
Je poursuivant votre navigation
cette requête sur le site,
et mon objet vous acceptez
SqlCommand : l’utilisation de cookies par OpenClassrooms pour
vous proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
vbnet
1 Dim Requete As String = "SELECT Artiste from Musiques Where Titre = 'Jeune Et Con'"
2 Dim Commande As New SqlCommand(Requete, Connexion) ACCEPTER
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 5/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
Il faut toujours passer l'objet de type SqlConnection lors de la création d'un objet
SqlCommand .
Vous voici avec votre commande, prête à être exécutée sur votre base.
L'objet de type SqlDataReader va récupérer les données d'une commande SELECT et les
emmagasiner. Il va falloir ensuite les lire une par une (donc cet objet est utile lorsqu'on a peu de
valeurs ou même une seule).
Pour lui dire de lire la valeur, nous allons utiliser Read() .
Read() renvoie un booléen spéci ant s'il y a ou non une valeur à lire.
Puis il faut y accéder en spéci ant le champ que l'on veut lire.
Utilisons ces informations pour continuer notre code et connaître notre artiste mystère.
1 If MonReader.Read() Then
2 Console.WriteLine(MonReader("Artiste").ToString)
3 Else
4 Console.WriteLine("Aucun artiste trouvé")
5 End If
Saez
Nous allons désormais apprendre à stocker les données récupérées dans un DataSet .
Pour résumer, le DataSet est un objet qui va stocker une image de la base de données, que l'on va
pouvoir traiter ultérieurement.
Le chapitre suivant vous apprendra tout ce qu'il y a à savoir sur les DataSet .
Il va falloir passer par un adaptateur, cet objet va remplir le DataSet avec la commande que l'on a
exécutée.
Je crée donc une requête pour récupérer toute la table Musiques . Je l'applique à un SqlCommand ,
jeEn poursuivant
l'exécute avecvotre
mon navigation sur le site,
SqlAdapter et jevous
créeacceptez l’utilisation
mon DataSet . de cookies par OpenClassrooms pour
vous proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
vbnet
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 7/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
Maintenant la ligne magique qui va remplir notre DataSet avec le résultat de la commande :
vbnet
1 Adaptateur.Fill(MonDataSet, "Musiques")
Ici, « Musiques » est le nom de la table de mon DataSet dans laquelle je vais stocker les données
résultantes de la requête.
Vous voici avec un DataSet rempli par votre table Musiques . Rendez-vous au prochain chapitre
pour apprendre comment utiliser notre DataSet et traiter ces données !
ADO.NET permet l'accès rapide aux données, son utilisation peut cependant devenir
laborieuse sur de grandes tables.
CRÉATION ET REMPLISSAGE DE LA
LE DATASET À LA LOUPE
BDD
Le professeur
Thomas Martinet
Livre PDF
En poursuivant votre navigation sur le site, vous acceptez l’utilisation de cookies par OpenClassrooms pour
OpenClassrooms
vous proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
L'entreprise
ACCEPTER
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 8/9
19/02/2019 La communication VB .NET - BDD - Apprenez à programmer en VB .NET - OpenClassrooms
Alternance
Forum
Blog
Nous rejoindre
Professionnels
Entreprises
En plus
Devenez mentor
Aide et FAQ
Nous contacter
Français
En poursuivant votre navigation sur le site, vous acceptez l’utilisation de cookies par OpenClassrooms pour
vous proposer des services et offres adaptées à vos centres d’intérêts. Notre politique de cookies.
ACCEPTER
https://openclassrooms.com/fr/courses/993975-apprenez-a-programmer-en-vb-net/992982-la-communication-vb-net-bdd 9/9