Support VB Net - 062954
Support VB Net - 062954
Support VB Net - 062954
IHM II
ADO .net
1. Présentation
ADO.NET (Activex Database Objet.NET) est une couche d'accès aux bases de données. Il
fournit des modules pour accéder à des BDD de différents types (Accès, SQL Server, Oracle,
etc ...)
2. Apports d’ADO .net
Avec ADO.Net Microsoft s'est efforcé de répondre efficacement aux besoins des applications
en apportant les nouveautés suivantes :
❖ Une architecture plus optimisée
Avec .Net, de nouveaux fournisseurs de données voient le jour. Certains fonctionnent en mode
natif, supprimant des couches intermédiaires entre l'application et sa source de données.
ADO.Net pourra ainsi être plus rapide accédant directement à la source de données.
❖ Un meilleur support du mode déconnecté
Le design de ADO.Net répond aux exigences des modèles de développement des applications
actuelles. Dans une application, le maintien d'une connexion SGBD ouverte doit être la plus
courte possible, car le nombre de connexions ouvertes vers une source de données peut
constituer un frein à la capacité de montée en charge d'une application. Aujourd'hui Microsoft
propose des classes spécialisées via l'objet DataReader et via l'objet DataSet.
❖ Un meilleur support de XML
Le XML est utilisé au sein du Framework .NET comme le standard de description et de
persistance des données. Dans ADO.Net il est utilisé comme le format de transmission
universelle de données.
3. Fonctionnalités d’ADO .net
On va différencier 3 types d'accès à la BDD :
✓ Les accès en lecture unitaire : Ces accès seront effectués grâce à un objet de type
SqlCommand. Cet objet va exécuter une 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 (souvent utilisé 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écedemment, 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 (tout 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 modification par exemple
Dans tous les cas, on doit se connecter à la BDD en utilisant un objet de type SqlConnection.
Voici un petit schéma pour résumer les 3 cas de figures qui se présentent à nous :
Pilotes d’accès aux bases de données
1. Généralités
Il existe de nombreuses bases de données pour les plateformes windows. Pour y accéder, les
applications passent au travers de programmes appelés pilotes (drivers).
Pilote de base de données
Application Base de
données
I1 I2
Une fois l'objet OdbcConnection construit, on ouvre la connexion avec la méthode Open. Cette
ouverture peut échouer comme toute autre opération sur la base. C'est pourquoi l'ensemble du
code d'accès à la base est-il dans un try-catch. Une fois la connexion établie, on peut émettre
des requêtes SQL sur la base.
' on tente d'accéder à la base de données
Try
' chaîne de connexion à la base
Dim connectString As String = "Dsn=gestetudiant"
con = New OdbcConnection(connectString)
con.Open()
Emettre les requêtes SQL
Pour émettre des requêtes SQL, il nous faut un objet Command, ici plus exactement un objet
OdbcCommand puisque nous utilisons une source de données ODBC. La classe
OdbcCommand a plusieurs constructeurs :
• OdbcCommand() : crée un objet Command vide. Il faudra pour l'utiliser préciser
ultérieurement diverses propriétés :
✓ CommandText : le texte de la requête SQL à exécuter
✓ Connection : l'objet OdbcConnection représentant la connexion à la base de données
sur laquelle la requête sera faite
✓ CommandType : le type de la requête SQL. Il y a trois valeurs possibles
• CommandType.Text : la propriété CommandText contient le texte d'une requête
SQL (valeur par défaut)
• CommandType.StoredProcedure : la propriété CommandText contient le nom
d'une procédure stockée dans la base
• CommandType.TableDirect : la propriété CommandText contient le nom d'une
table T. Equivalent à select * from T. N'existe que pour les pilotes OLE DB.
• OdbcCommand(string sqlText) : le paramètre sqlText sera affecté à la propriété
CommandText. C'est le texte de la requête SQL à exécuter. La connexion devra être précisée
dans la propriété Connection.
• OdbcCommand(string sqlText, OdbcConnection connexion) : le paramètre sqlText
sera affecté à la propriété CommandText et le paramètre connexion à la propriété Connection.
Exemple :
' affichage des données
dgv_etudiant.Rows.Clear()
While (myReader.Read())
dgv_etudiant.Rows.Add(myReader.GetValue(0).ToString(),
myReader.GetValue(1).ToString(),
myReader.GetValue(2).ToString(),
myReader.GetValue(3).ToString()
)
End While
command.ExecuteNonQuery()
command.ExecuteNonQuery()