Support
Short Description
Download Support...
Description
2ème année IAG
Chapitre 3: Accès aux bases de données Cours assuré par:
Mr Chaouki Bayoudhi
Mme Meriem Ennigrou
Support de cours VB.NET
ADO.Net • Pour avoir accès à partir de VB.Net aux Bases de Données il faut utiliser la technologie ADO.NET (ActiveX Data Objects) • C’est la couche d’accès aux BD, càd le SGBD de VB.Net • C’est un ensemble de classes, de méthodes et d’évènements permettant de récupérer et de manipuler des données. • Elle permet un accès à différentes sources de données par l’intermédiaire de fournisseurs OLE DB qui traduisent les requêtes dans le langage du système de base de données réel. • La grande force de cette technologie est qu’elle permet une manipulation identique quelque soit la source de données (hormis les paramètres de connexion).
2
Support de cours VB.NET
ADO.Net Applications Visual Basic
Objets de Données ActiveX (ADO)
Fournisseurs OLE DB OLE DB
BD ACCESS
Oracle
BD Oracle
SQL
…
BD SQL Server 3
Support de cours VB.NET
Fournisseurs d’accès • Plusieurs fournisseurs existent pour les différents SGBD existant sur le marché. Source de données Microsoft Access
Fournisseur OLE DB OLEDB
SQL Server version 7 ou SQL supérieure Oracle version 8.1.7 ou Oracle supérieure ODBC ODBC MySQL
OLEDB 4
Support de cours VB.NET
Espace de nom Espace de nom Fournisseur OLE DB •System.Data La technologie ADO.Net est basée sur un Compatible avec tous les ensemble de classes existant dans des espaces fournisseurs de nom relatif chacun à un type deOLEDB base de System.Data.OleDB données System.Data.SqlClient SQL • Au début de l’application, il faut donc System.Data.OracleClient importer ces espaces de nom avec Oracle Imports
Imports Espace_nom System.Data.ODBC
ODBC
5
Support de cours VB.NET
Mode connecté Vs. Mode déconnecté • Deux modes existent pour l’utilisation des données dans une application : 1. Mode Connecté : l’application client a un accès direct à la source de données 2. Mode déconnecté : il est possible de travailler sur des données sans avoir un accès direct et permanent à la base.
6
Support de cours VB.NET
Mode connecté • Les objets utilisés dans ce mode sont : 1. Connexion : permet d’établir une connexion avec la source de données 2. Command : cet objet permet d’exécuter des traitements ou de modifier / lire des données sur la source, c’est lui qui contiendra la requête SQL 3. DataReader : permet de parcourir, en lecture seule, l’ensemble des enregistrements récupérés par la requête. Il est créé par l’objet Command 7
Support de cours VB.NET
Mode déconnecté • Dans ce mode, le traitement des données se fait en 3 étapes : 1. Récupération des données à partir de la source 2. Modification des données en mode déconnecté 3. Intégration des données modifiées à la source avec éventuellement résolution des conflits (contraintes d’intégrité)
• Les objets utilisés dans ce mode sont : 1. Connexion : permet d’établir la connexion 2. DataAdapter : contenant la requête Select. Il sert de liaison entre la source de données et l’objet dataSet 3. DataSet : a la structure d’une base de données mais en local. Il peut être rempli par l’objet DataAdapter ou bien créé indépendamment d’une source de données 8
Support de cours VB.NET
Mode déconnecté
9
Support de cours VB.NET
DataSet – Composants • Pour utiliser un DataSet, il faut importer l’espace de nom System.data • Un DataSet peut être composé de : 1. 2. 3. 4. 5. 6.
DataTable DataRow DataColumn DataRelation Constraint DataView 10
Support de cours VB.NET
Etablir une connexion avec une BD •
Afin d’établir une connexion avec la BD, il faut créer un objet connexion en instanciant la classe Connection spécifique au fournisseur d’accès de votre BD Fournisseur OLE DB ODBC OLEDB SQL Server
•
Classe OdbcConnection OleDbConnection SqlConnection
Parmi les propriétés de ces classes Propriétés ConnectionString
State
Description Chaîne utilisée pour la connexion contenant le fournisseur OLE DB et le chemin d’accès de la BD Etat de la connexion
11
Support de cours VB.NET
Etablir une connexion avec une BD •
Parmi les paramètres de la chaîne de connexion ConnectionString Paramètres
•
Description
Provider
le fournisseur d’accès
Data Source
l’emplacement de la base
ConnectionTimeOut
délai en secondes maximum l’établissement de la connexion
pour
La liste des providers possibles selon la source de données Source de données Microsoft Access 2003 Microsoft Access 2007 SQL Server Oracle ODBC MySQL
Fournisseur OLEDB OLEDB SQL Oracle ODBC OLEDB
Chaîne de connexion Microsoft.Jet.OLEDB.4.0 Microsoft.ACE.OLEDB.12.0 SQLOLEDB.1 OraOLEDB.oracle MSDASQL 12 MySQLProv
Etablir une connexion avec une BD Exemple Dim myConnexion As OleDbConnection = New OleDbConnection (″Provider= Microsoft.Jet.OLEDB.4.0; Data Source = C:\consultation.mdb ; ConnectionTimeOut = 50″)
Permet d’établir une connexion avec la BD de nom ″consultation.mdb″ qui est une BD Access 2003 dont le délai maximal est égal à 50
13
Support de cours VB.NET
Etablir une connexion avec une BD • La propriété state peut avoir les valeurs suivantes : – Closed : fermée – Connecting : En cours de connexion – Open : ouverte – Executing : En exécuttion – Fetching : Extraction de données – Broken : Interrompue • Parmi les méthodes des classes de connexion, on cite : Méthode Open Close CreateCommand
•
Description Ouvre la connexion Ferme la connexion et libère les ressources Crée un objet Commande
Après avoir créé l’objet Connexion il faut l’ouvrir avec Open
MyConnexion.open() 14
Support de cours VB.NET
Travailler avec un DataReader • Avec un objet DataReader on extrait les données en lecture seule : une requête SQL charge le dataReader. • Pour gérer un DataReader on a besoin d’un objet Command. • Dans ce cas, il faut suivre les étapes suivantes : – – – –
Créer un objet Connection Ouvrir la connexion Créer un objet Command Exécuter la méthode ExecuteReader pour créer l’objet DataReader – Parcourir les enregistrements par la méthode read. 15
Support de cours VB.NET
Travailler avec un DataReader • Pour créer un objet Command, il faut instancier la classe correspondante au fournisseur utilisé Fournisseur
Classe ODBC OdbcCommand OLEDB OleDbCommand SQL Server SqlCommand • Parmi les propriétés de ces classes : Propriétés CommandText Connection CommandTimeOut
Description Texte SQL de la requête à exécuter Connexion liée à la commande Nombre de secondes pour l’exécution de la commande 16
Support de cours VB.NET
Travailler avec un DataReader • Parmi les méthodes des classes de commande Méthode Cancel ExecuteReader ExecuteScalar ExecuteNonQuery
Description Annule l’exécution de la commande Exécute la requête et retourne un objet de type DataReader Exécute la requête et retourne une valeur unitaire (utilisé avec count, avg, etc.) Exécute une commande ne retournant pas de ligne (Insert, Update, Delete, etc.)
17
Support de cours VB.NET
Travailler avec un DataReader Exemple 1ère méthode Dim MyCommand As MyConnexion.CreateCommand() MyCommand.CommandText = QUESTIONS"
2ème méthode
OleDbCommand "SELECT
NOM
= FROM
Création de l’objet Commande à partir de l’objet connection et sa méthode CreateCommand
Dim MyCommand As OleDbCommand = New OleDbCommand() MyCommand.Connection = MyConnexion MyCommand.CommandText = "SELECT FROM QUESTION" CréationNOM de l’objet Commande en spécifiant dans la propriété connection l’objet Connection concerné 18
Support de cours VB.NET
Travailler avec un DataReader • L’objet DataReader permet de lire les enregistrements issus d’une requête. • Pour créer un objet DataReader, il faut tout d’abord instancier la classe correspondante au fournisseur utilisé. Fournisseur
Classe
ODBC
OdbcDataReader
OLEDB
OleDbDataReader
SQL Server
SqlDataReader
Exemple Dim myReader As OleDbDataReader = MyCommand.ExecuteReader() 19
Support de cours VB.NET
Travailler avec un DataReader • Parmi les méthodes de cet objet Méthode
Description Close Ferme le DataReader Read Avance au prochain enregistrement, retourne True s’il existe d’autres enregistrements et False s’il n’y en a plus GetValue(i) Retourne la valeur du champ sans type à l’indice « i » GetString, GetDouble, Retourne la valeur du champ typé à l’indice « i » GetBoolean, Getint32, … GetType(i) Retourne le type du champ à l’indice « i » GetName(i) Retourne le nom du champ à l’indice « i » GetOrdinal (nom) Retourne l’indice du champ donné en paramètre FieldCount Retourne le nombre de colonnes du DataReader 20
Support de cours VB.NET
Travailler avec un DataReader • L’objet DataReader est lu séquentiellement de la 1ère ligne à la dernière. C’est la méthode Read qui permet d’avancer à la ligne suivante • Une fois le traitement terminé, il faut fermer la connexion : myConnexion.close()
21
Support de cours VB.NET
Pour compter des enregistrements • Avec ExecuteScalar de l'objet Command on peut récupérer les résultats d'une requête SQL qui contient une instruction COUNT (comptage) AVG (moyenne) MIN (valeur minimum) MAX (valeur maximum) SUM (somme) Exemple Mycommand.CommandText = "SELECT COUNT(*) FROM QUESTIONS" MyConnexion.Open() Dim iResultat As Integer = Mycommand.ExecuteScalar()
Permet de compter le nombre de questions
22
Support de cours VB.NET
Pour mettre à jour une BD • Avec ExecuteNonQuery de l'objet Command on peut mettre à jour (INSERT, DELETE, UPDATE ou ajout d’une table) une BD sans retourner de données Exemple Mycommand.CommandText = "insert into QUESTION values (...)" MyConnexion.Open() Mycommand.ExecuteNonQuery()
Permet de mettre à jour la BD
23
Support de cours VB.NET
Exemple Complet avec les DataReader Imports System Imports System.data Imports System.data.OleDB Public class Form1 Inherits System.Windows.Forms.Form Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myConnexion As OleDbConnection = New OleDbConnection (″Provider= Microsoft.Jet.OLEDB.4.0; DataSource = C:\consultation.mdb ; ConnectionTimeOut = 50″) myConnexion.open() Dim MyCommand As OleDbCommand = MyConnexion.CreateCommand() MyCommand.CommandText = "SELECT NOM FROM QUESTIONS" Dim myReader As OleDbDataReader = MyCommand.ExecuteReader() Do While myReader.read() ListBox1.Items.Add(myreader.getString(0)) Loop myReader.close() myConnexion.close() End Sub End Class 24
Support de cours VB.NET
Travailler avec un DataSet • Les données du dataSet peuvent provenir soit : 1. de l’application cliente (par exemple données saisies par l’utilisateur ou calculées par l’application, etc.) 2. d’une base de données
• Avant de remplir le DataSet par les données, il faut créer sa structure • Pour créer un objet dataSet il faut instancier la classe DataSet Exemple Dim donnees as new DataSet(″donnees″)
25
Support de cours VB.NET
Créer un DataSet • Parmi les propriétés de l’objet DataSet Propriété
Tables Relations
Description
Collection des tables contenues dans le dataSet Collection des relations qui relient des tables du dataSet
• Une fois créé, on doit lui ajouter des tables et des relations. • Pour créer un objet DataTable il faut instancier la classe DataTable puis le lier à l’objet DataSet Exemple Dim personne As New DataTable(″personne″) 26 Support de cours VB.NET donnees.Tables.Add(personne)
Créer un DataSet • Parmi les propriétés de l’objet DataTable Propriété Columns Constraints Rows PrimaryKey
Description Collection des colonnes de la table Collection des contraintes de la table Collection des lignes de la table Tableau de colonnes faisant parti de la clé primaire
• Pour ajouter un objet dataColumn à l’objet dataTable, il faut instancier la classe DataColumn puis la lier à l’objet DataTable
27
Support de cours VB.NET
Créer un DataSet • En créant une colonne, on doit spécifier plusieurs informations : – Le nom de la colonne – Le type de la colonne – Les propriétés de la colonne qui sont résumées dans le tableau suivant : Propriété AllowDBNull DefaultValue Unique AutoIncrement AutoIncrementSeed AutoIncrementStep
Description Autorise la valeur Null Valeur par défaut de la colonne Définit si les valeurs de la colonne doivent être uniques Définit si la colonne est un compteur dont la valeur s’incrémente automatiquement Valeur de départ de l’incrément Pas de l’incrément 28
Créer un DataSet Exemple Dim col1 As New DataColumn(″pers_num″, GetType(Integer)) Col1.AutoIncrement = true Col1.AutoIncrementSeed = 1 Col1.AutoIncrementStep = 1 donnees.Tables(″personne″).Columns.Add(col1) donnees.Tables(″personne″).PrimaryKey = New DataColumn(){col1} Dim col2 As New DataColumn(″pers_nom″,GetType(String)) Permet de lier l’objet Col2.Unique = true DataColumn à l’objet Permet de définir la clé Col2.DefaultValue = ″inconnu″ DataTable primaire de la table donnees.Tables(″personne″).Columns.Add(col2) Dim col3 As New DataColumn(″pers_cat_num″,GetType(Integer)) donnees.Tables(″personne″).Columns.Add(col3)
29
Support de cours VB.NET
Créer un DataSet • La création d’une relation se fait en créant un objet DataRelation et en spécifiant les champs des tables qui sont liés. • Pour créer un objet DataRelation, il faut instancier la classe DataRelation • Lors de la création d’une relation, on doit spécifier son nom, le champ « clé primaire » et le champ « clé étrangère »
30
Support de cours VB.NET
Créer un DataSet Exemple Dim categorie As New DataTable(″categorie″) donnees.Tables.Add(categorie) Dim col4 As New DataColumn(″cat_num″, GetType(Integer)) Col4.AutoIncrement = true Col4.AutoIncrementSeed = 1 Col4.AutoIncrementStep = 1 donnees.Tables(″categorie″).Columns.Add(col4) donnees.Tables(″categorie″).PrimaryKey =New DataColumn(){col4} Dim col5 As New DataColumn(″cat_lib″,GetType(String)) donnees.Tables(″categorie″).Columns.Add(col5) Dim rel As New DataRelation(″personne_categorie″, donnees.Tables(″categorie″).Columns(″cat_num″), Permet d’ajouter une table « categorie » donnees.Tables(″personne″).Columns(″pers_cat_num″)) 31 ayant 2 colonnes au DataSet donnees.Relations.Add(rel)
Remplir un DataSet à partir d’une BD • Une requête SQL charge le DataSet avec des enregistrements ou des champs • Pour alimenter un DataSet on a besoin d’un DataAdapter qui fait l’intermédiaire entre la BD et le DataSet. • Dans ce cas, il faut suivre les étapes suivantes : 1. 2. 3. 4.
•
Créer un objet Connexion Ouvrir la connexion Créer un objet DataAdapter Remplir les DataTable d’un objet DataSet grâce à la méthode Fill du DataAdapter
Les DataGrid et les ListBox peuvent afficher des données à partir des DataSet. 32
Support de cours VB.NET
Remplir un DataSet à partir d’une BD • Pour créer un objet DataAdapter il faut instancier l’une des deux classes suivantes : Fournisseur OLEDB SQL Server
Classe OleDbDataAdapter SqlDataAdapter
• Il faut également spécifier la requête Select utilisée pour remplir le DataSet et le fournisseur utilisé. Exemple Dim myDataAdapter As new OleDbDataAdapter(″Select * From QUESTION″, cn)
33
Support de cours VB.NET
Remplir un DataSet à partir d’une BD • Parmi les méthodes de l’objet DataAdapter Méthode Fill
Description Remplit un DataSet. Cette méthode a la capacité d’ouvrir et de fermer la connexion utilisée
• Plusieurs alternatives existent pour remplir le dataSet: 1. 2. 3. 4.
Remplir un DataTable déjà créé dans le DataSet Créer et remplir un nouveau DataTable Récupérer un certain nombre d’enregistrements Remplir plusieurs DataTable simultanément 34
Support de cours VB.NET
Remplir un DataTable déjà créé • la structure du DataTable doit correspondre au jeu de données retournées. • La méthode Fill possède comme paramètres un DataSet et le nom de la table à remplir. Exemple Dim ds As New DataSet(″monds″) Dim t As New DataTable(″maTable″) Dim col1 As New Data.DataColumn(″num″, GetType(Integer)) Dim col2 As New Data.DataColumn(″lib″, GetType(string)) t.Columns.Add(col1) t.Columns.Add(col2) ds.Tables.Add(t) Dim cn As New OleDbConnection Cn.ConnectionString = “Provider=Microsoft.Jet.Oledb.4.0; Data Source = E:\bd2.mdb” Dim da As New OleDbDataAdapter (“Select * From Table1”,cn) Da.Fill(ds,”maTable”) 35
Créer et remplir un nouveau DataTable • Dans ce cas, c’est le dataAdapter qui crée le DataTable ainsi que sa structure. Le DataTable passé en paramètre est un DataTable inexistant qui sera créé par le DataAdapter Exemple Dim ds As New DataSet(″monds″) Dim cn As New OleDbConnection Cn.ConnectionString = “Provider=Microsoft.Jet.Oledb.4.0; DataSource = E:\bd2.mdb” Dim da As New OleDbDataAdapter (“Select * From Table1”,cn) Da.Fill(ds,”maTable”) 36
Support de cours VB.NET
Récupérer un certain nombre d’enregistrements • Il est possible lors de l’appel de la méthode Fill de spécifier quelles sont les lignes de la requête à récupérer. Pour cela, on utilise deux paramètres qui sont l’indice de départ et le nombre maximal d’enregistrements à récupérer. Exemple Dim da As New OleDbDataAdapter (“Select * From Table1”,cn) Da.Fill(ds,50,10,”toto”)
Cet exemple permet de récupérer 10 enregistrements à partir du 50ème enregistrement 37
Support de cours VB.NET
Remplir plusieurs DataTable simultanément • Il est également possible de remplir plusieurs DataTable à partir d’un seul DataAdapter en passant en paramètres plusieurs requêtes séparées par des points virgule. Exemple Dim cn As New OleDbConnection (“Provider = Microsoft.Jet.OleDb.4.0 ; DataSource = E:\bd2.mdb” Dim da As New OleDbDataAdapter (“Select * From Client; Select * from Produit; Select * From Commande”,cn) Da.Fill(ds,”maTable1”, ”maTable2”, ”maTable3” ) ‘Affectation de nouveaux noms aux tables créés Ds.Tables(0).TableName= ″Client″ Ds.Tables(1).TableName= ″Produit″ Ds.Tables(2).TableName= ″Commande″
38
Support de cours VB.NET
Travailler avec les données du DataSet • Chaque DataTable contient une collection de DataRow qui sont les différents enregistrements de la table • Plusieurs opérations sont possibles : 1. 2. 3. 4.
Parcourir les données Insertion de données Modification des données Suppression des données
39
Support de cours VB.NET
Parcours des données du DataSet • Deux modes de parcours existent : – Parcours linéaire qui permet d’accéder aux enregistrements d’une seule table via leur indice selon un accès direct – Parcours hiérarchique permettant d’utiliser les relations mises en place entre les tables d’un DataSet
Exemple de parcours linéaire Dim contenu As String Donne le contenu du champ Dim i as integer « pers_num » de la ligne i For i = 0 To donnees.Tables(″personne″).Rows.count-1 Contenu = contenu & donnees.Tables(″personne″).Rows(i).Item(″pers_num″)& ″-″ & donnees.Tables(″personne″).Rows(i).Item(″pers_nom″) & vbCr Next L’exemple affiche tous les MsgBox(Contenu) enregistrements de la table ″personne″ 40
Parcours des données du DataSet Exemple précédent modifié Dim contenu As String Dim tpersonne as DataTable tpersonne = donnees.Tables(″personne″) Dim i as integer For i = 0 To tpersonne.Rows.count-1 Contenu = contenu & tpersonne.Rows(i).Item(″pers_num″)& ″-″ & tpersonne.Rows(i).Item(″pers_nom″) & vbCr Next MsgBox(Contenu)
41
Support de cours VB.NET
Parcours des données du DataSet Exemple de parcours hiérarchique
L’exemple affiche pour chaque catégorie, toutes les personnes correspondantes
Dim contenu2 As String Dim elt As DataRow Dim i as integer Dim tcategorie as DataTable Tcategorie = donnees.Tables(″categorie″) For i = 0 To Tcategorie.Rows.Count-1 Contenu2 = contenu2 & Tcategorie.Rows(i). Item(″cat_lib″) & vbCr For each elt In Tcategorie.Rows(i).GetChildRows(″personne_categorie″) Contenu2 = contenu2 & elt.Item(″pers_nom″) & vbCr La méthode GetChildRows de l’objet dataRow Next permet de sélectionner les enregistrements de la Next table « Personne » associés à une catégorie MsgBox(contenu2) déterminée selon la relation « personne_catégorie42»
Parcours des données du DataSet Exemple 2
L’exemple affiche pour chaque personne le libellé de la catégorie à laquelle elle appartient
Dim contenu3 As String Dim i as integer Dim tpersonne as DataTable Tpersonne = donnees.Tables(″personne″) For i = 0 To Tpersonne.Rows.Count-1 Contenu3 = contenu3 & Tpersonne.Rows(i).Item(″pers_num″) & ″_″ & Tpersonne.Rows(i).Item(″pers_nom″) & ″_″ & Tpersonne.Rows(i).GetParentRow(″personne_categorie″). Item(″cat_lib″)& VbCr Next MsgBox(contenu3) La méthode GetParentRow de l’objet dataRow permet de sélectionner l’enregistrement de la table « Catégorie » associé à une personne donnée selon 43 la relation « personne_catégorie »
Insertion des données dans un DataSet • Pour insérer un nouvel enregistrement, on doit : – Créer un objet DataRow à partir du DataTable – Configurer les valeurs des différentes colonnes – Ajouter le DataRow au DataTable
Exemple Dim dr As DataRow = donnees.Tables(″categorie″).NewRow() dr(″cat_lib″)=″Salarie” donnees.Tables(“categorie”).Rows.Add(dr)
L’exemple ajoute un enregistrement dans le DataTable « categorie » 44
Insertion des données dans un DataSet Exemple 2 Dim dr2 As DataRow = donnees.Tables(″personne″).NewRow() dr2(″pers_nom″)=″Ali″ Dr2(″pers_cat_num″) = ″3″ donnees.Tables(“personne”).Rows.Add(dr2)
L’exemple ajoute une personne dans le DataTable « personne » en lui attribuant la catégorie N°3
45
Support de cours VB.NET
Modification des données d’un DataSet • La modification de données est possible en modifiant la collection Rows de l’objet DataTable. • La modification se fait en trois étapes : 1. Appel de la méthode « BeginEdit » sur l’objet DataRow qui permet de commencer une opération de modification 2. Modification des données 3. Appel de la méthode « EndEdit » pour valider les modifications ou de la méthode « CancelEdit » pour les annuler
Exemple donnees.Tables(″personne″).Rows(0).BeginEdit() donnees.Tables(″personne″).Rows(0).Item(“pers_nom”)=”ali” donnees.Tables(″personne″).Rows(0).EndEdit()
L’exemple permet de modifier le 1er enregistrement de la table « Personne »
46
Suppression des données d’un DataSet • La suppression des données consiste à supprimer des objets DataRow de l’objet DataTable. Pour cela, on utilise la méthode « Delete » de l’objet DataRow. Exemple Donnees.Tables(″personne″).Rows(0).Delete()
L’exemple permet de supprimer le 1er enregistrement de la table « Personne »
47
Support de cours VB.NET
Création d’un objet DataView • Un DataView permet d’extraire, filtrer et trier des données issues d’un DataTable. • Il est possible de modifier, ajouter, supprimer des données directement à partir du DataView et les modifications seront automatiquement retranscrites dans le DataTable lié. • Parmi les propriétés de cet objet, on cite : Propriétés AllowDelete AllowEdit AllowNew Count Sort
Description Autorise la suppression d’enregistrements Autorise la modification d’enregistrements Autorise l’ajout d’enregistrement Nombre d’enregistrements 48 Equivalent à order by en SQL
Création d’un objet DataView • Parmi les méthodes de cet objet, on cite : Méthodes AddNew Delete Find
FindRows
Description Ajoute un enregistrement Supprime un enregistrement Retourne l’indice de l’enregistrement correspondant aux paramètres de recherche par rapport aux champs spécifiés dans l’attribut « sort » Retourne un ensemble de DataRow correspondant à la recherche
49
Support de cours VB.NET
Création d’un objet DataView Exemple Dim dv As New DataView dv.Table=donnees.Tables(“personne”) dv.AllowDelete = False Crée un DataView à partir du dv.AllowNew = False DataTable « personne » dv.AllowEdit = True dv.Sort = “pers_nom” Dim indice As Integer Les enregistrements sont classés Indice = dv.Find(“mohamed”) par ordre décroissant MsgBox(dv(indice).Item(“pers_cat_num”)) Cherche l’enregistrement dont le nom est « mohamed » 50
Remplir un DataGridView à partir d’un DataSet • Un dataGridView est une grille avec des lignes et des colonnes comme un tableur • Une fois que le dataSet existe, en une seule ligne de code, on peut l'afficher dans un DataGridView • La syntaxe est la suivante : DataGridView1.dataSource = donnees.tables("personne")
51
Support de cours VB.NET
Exporter les données d’un DataSet vers une BD • L’exportation des données d’un DataSet vers une BD se fait également à l’aide d’un objet DataAdapter et d’un objet CommandBuilder • La création d’un objet CommandBuilder se fait par instanciation de l’une des classes: Fournisseur OLEDB SQL Server
Classe OleDbCommandBuilder SqlCommandBuilder
• La méthode update de l’objet DataAdapter permet d’exporter les données du dataSet vers la Base de données 52
Support de cours VB.NET
Exporter les données d’un DataSet vers une BD Exemple Dim cmdbuilder as new oledbCommandBuilder(da) Da.update(ds, “personne”)
53
Support de cours VB.NET
View more...
Comments