Support

Transcription

Support
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

Documents pareils