Académique Documents
Professionnel Documents
Culture Documents
I. Introduction
L’ADO.NET (ActiveX Database Objects.NET ) permet de relié une application à une base de données.
La nouveauté de l’ADO.NET par rapport à son ancêtre l’ADO est la gestion de données dans une
application dans un environnement déconnecté. Ce mode, par rapport au mode connecté classique,
possède plusieurs avantages et inconvénients. Ces deux modes sont utilisables avec les fournisseurs de
base de données.
Server (data source): Nom ou adresse réseau du serveur vers lequel est établie la connexion
Database (initial catalog) : Nom de la base sur laquelle doit s’effectuer la connexion.
Integrated Security : Si cette valeur est positionnée sur false alors un nom d’utilisateur et un mot de
passe doivent être fournis dans la chaîne de connexion. Sinon, le compte Windows de l’utilisateur est
utilisé pour l’authentification.
La méthode : con.open() permet d’ouvrir la connexion
La méthode : con.close() permet de fermer la connexion
La propriété : con.State.ToString permet d’afficher l’état de connexion (open ou close).
4) Le SqlDataReader
Le DataReader permet un accès en lecture seule à des enregistrements. Il n’a pas été créé que pour la
lecture pure et simple de données (SELECT). Le DataReader doit toujours être associé à une connexion
active, c'est à dire qu’il ne peut pas se déconnecter, effectuer quelque chose puis se reconnecter pour une
mise à jour.
5) ExecutesScalar
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:
Dim cmd As New SqlCommand("select count(*) from Nom_de_table ", con)
Text.text = cmd.ExecuteScalar()
1) Introduction
Dans un mode non connecté, la liaison avec le serveur de base de données n’est pas permanente. Il faut donc
conserver localement les données sur lesquelles on souhaite travailler. L’idée est de recréer, à l’aide de
différentes classes, une organisation similaire à celle d’une base de données.
c) Objet DataColumn
Les objets DataColumn correspondent aux différentes colonnes d’une table. En créant une colonne, vous
devez spécifier plusieurs informations :
Le nom de la colonne
Le type de la colonne
Les propriétés de la colonne
L’exemple suivant ajoute des champs à la table « personne » en utilisant les différentes propriétés et
spécifie la clé primaire :
5) Objet DataRelation
Un DataSet est une représentation en objets d’une base de données. Un des points fondamental des bases de
données est la mise en place de relation permettant ensuite de vérifier la cohérence des données saisies dans
plusieurs tables.
La création d’une relation se fait par rapport à un DataSet en créant un objet DataRelation et en spécifiant
les champs des tables qui sont liés. Une relation concerne deux champs. Lors de la création de la relation,
vous devez spécifier son nom, le champ « clé primaire » et le champ « clé étrangère ».
L’exemple suivant crée les tables « personne » et « categorie » et met en place une relation entre les deux :
Dim rel As New DataRelation ("pers_cat",ds.Tables("personne").Columns("pers_num"),
ds.Tables("categorie ").Columns("pers_num"))
ds.Relations.Add(rel)
6) Objet DataAdapter
Les Objets DataSet et DataTable permettent de définir la structure des données au sein d’une application
comme mode temporaire de stockage.
L’objet DataAdapter est un connecteur entre la source de données et l’objet DataSet. L’intérêt d’un tel
composant est de pouvoir dissocier la zone de stockage des données (Une BDR par exemple) de la zone de
travail (Le DataSet).
Son utilisation se fait en plusieurs étapes :
a) Création
Lors de la création d’un DataAdapter, il est nécessaire de spécifier la connexion utilisée ainsi que la requête
Select.
Dim da As New sqlDataAdapter("select * from Produits", con)
c) Remplir un DataSet
Le remplissage des éléments d’un DataSet se fait à l’aide de la méthode Fill de l’objet DataAdapter.
Plusieurs configurations sont possibles pour la récupération des données en raison de la surcharge de la
méthode Fill :
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 virgules.
Attention, lors de la création des DataTable, la méthode Fill les nomme « Table1 », Table2 … Il est donc
vivement conseillé de renommer les tables après exécution.
da.Update(ds, "Client")
ds.Tables("Client").AcceptChanges()
7) La classe SqlCommandBuilder
SqlDataAdapter ne génère pas automatiquement les instructions Transact-SQL requises pour
l'harmonisation des modifications apportées à DataSet avec l'instance associée de SQL Server. Cependant,
vous pouvez créer un objet SqlCommandBuilder pour générer automatiquement des instructions Transact-
SQL pour des mises à jour de table simple si vous définissez la propriété SelectCommand de
SqlDataAdapter.
Déclaration classe SqlCommandBuilder
Dim cmd As SqlCommandBuilder
Création objet un SqlCommandBuilder
cmd = New SqlCommandBuilder(da)
Méthode Description
Addnew Ajoute un enregistrement
Delete Supprime un enregistrement
Find Retourne l’indice de l’enregistrement correspondant aux paramètres de
recherche par rapport au champ spécifié dans l’attribut « sort »
FindRows Retourne un ensemble de lignes (DataRow) correspondant à la recherche.
create database
personne;
use personne
End Sub
--------------------------------------------------------------------------------------
Private Sub Ajouter_Click(sender As Object, e As EventArgs) Handles Ajouter.Click
If num = -1 Then 'si le numéro dans TextBox1 # au code de la table "personne" num=-1
'requette pour sélectionner la ligne de la table "pesonne" du code qui se trouve dans ComboBox1.Text
da = New SqlDataAdapter("select * from personne where code='" & ComboBox1.Text & "'", con)
da.Fill(ds, "recherche") 'mettre cette sélection dans une nouvelle table "recherche" du DataSet
da.Update(ds, "personne")
ds.Tables("personne").GetChanges()
MsgBox("Bien Supprimer !!", MsgBoxStyle.Information)
charger()
End If
End Sub
----------------------------------------------------------------------------------------
Private Sub Modifier_Click(sender As Object, e As EventArgs) Handles Modifier.Click
da = New SqlDataAdapter("update personne set nom='" & Me.TextBox2.Text & "', prenom='" &
Me.TextBox3.Text & "', classe='" & Me.TextBox3.Text & "' where code= " & Me.TextBox1.Text & "", con)
cmd = New SqlCommandBuilder(da)
da.Fill(ds, "personne")
da.Update(ds, "personne")
ds.Tables("personne").AcceptChanges()
MsgBox("Bien Modifier!!", MsgBoxStyle.Information)
charger()
End Sub
--------------------------------------------------------------------------------------------
Private Sub Textfiltre_TextChanged(sender As Object, e As EventArgs) Handles Textfiltre.TextChanged
'pour utiliser le filtre on doit appeler DataView qui facile cette opération
Dim dv As New DataView
dv.Table = ds.Tables("personne") 'mettre la table "personne" dans dv
'filter par le champ "nom" de la vue "dv" avec du texte saisi dans Textfiltre et % indique n'importe
caractère
dv.RowFilter = "nom like '" + Textfiltre.Text + "%'"
'trier une colonne par appel à la propriété "sort" du DataView; desc: pour décroissant
dv.Sort = "nom desc"
'lors du clique sur une ligne du DtaGrid les données seront placées dans les zonnes de textes
Dim i As Integer = DataGridView1.CurrentRow.Index ' indique le numéro de la ligne sélectionée
TextBox1.Text = DataGridView1.Rows(i).Cells(0).Value.ToString
TextBox2.Text = DataGridView1.Rows(i).Cells(1).Value.ToString
TextBox3.Text = DataGridView1.Rows(i).Cells(2).Value.ToString
TextBox4.Text = DataGridView1.Rows(i).Cells(3).Value.ToString
End Sub
---------------------------------------------------------------------------------------
Private Sub BDEBUT_Click(sender As Object, e As EventArgs) Handles BDEBUT.Click
---------------------------------------------------------------------------------------
Private Sub BFIN_Click(sender As Object, e As EventArgs) Handles BFIN.Click
End Class
create database
personne;
use personne
Sub chargerdataset()
ds.Clear()
'remplir la selection du SqldataApadter dans la nouvelle table "personne" du DATASET
da = New SqlDataAdapter("select * from personne", con)
da.Fill(ds, "personne")
End Sub
'Procédure charger() permet remplire datagrid par la table "personne" et le combobox par les
codes (item(0))
Sub charger()
Dim dt As New DataTable
' effacer les tables dans datasaet
dt.Clear()
DataGridView1.Update() 'mettre a jour la grille
ComboBox1.Items.Clear() 'vider item du combobox
ComboBox1.Text = Nothing 'effacer le texte combobox
TextBox1.Text = Nothing 'effacer la zone de texte textbox1
TextBox2.Text = Nothing
TextBox3.Text = Nothing
TextBox4.Text = Nothing
dt = ds.Tables("personne")
End Sub
Private Sub Ajouter_Click(sender As Object, e As EventArgs) Handles Ajouter.Click
If num = -1 Then 'si le numéro dans TextBox1 # au code de la table "personne" num=-1
' insertion des données dans la table "personne" du Dataset
dr = ds.Tables("personne").NewRow
dr(0) = TextBox1.Text
dr(1) = TextBox2.Text
dr(2) = TextBox3.Text
dr(3) = TextBox4.Text
ds.Tables("personne").Rows.Add(dr)
charger()
End If
End Sub
dr = ds.Tables("personne").Rows.Find(TextBox1.Text)
dr.BeginEdit()
dr(1) = TextBox2.Text
dr(2) = TextBox3.Text
dr(3) = TextBox4.Text
dr.EndEdit()
charger()
End Sub
Private Sub chercher_Click(sender As Object, e As EventArgs) Handles chercher.Click
'pour utiliser le filtre on doit appeler DataView qui facilite cette opération
Dim dv As New DataView
dv.Table = ds.Tables("personne") 'mettre la table "personne" dans dv
End Sub
Private Sub Textfiltre_TextChanged(sender As Object, e As EventArgs) Handles
Textfiltre.TextChanged
'pour utiliser le filtre on doit appeler DataView qui facile cette opération
Dim dv As New DataView
dv.Table = ds.Tables("personne") 'mettre la table "personne" dans dv
'filter par le champ "nom" de la vue "dv" avec du texte saisi dans Textfiltre et % indique
n'importe caractère
dv.RowFilter = "nom like '" + Textfiltre.Text + "%'"
'trier une colonne par appel à la propriété "sort" du DataView; desc: pour décroissant
dv.Sort = "nom desc"
'mettre dans la grille le filtre
DataGridView1.DataSource = dv
End Sub
Private Sub DataGridView1_MouseClick(sender As Object, e As MouseEventArgs) Handles
DataGridView1.MouseClick
TextBox1.Text = DataGridView1.Rows(i).Cells(0).Value.ToString
TextBox2.Text = DataGridView1.Rows(i).Cells(1).Value.ToString
TextBox3.Text = DataGridView1.Rows(i).Cells(2).Value.ToString
TextBox4.Text = DataGridView1.Rows(i).Cells(3).Value.ToString
End Sub
End If
End Sub
End Sub
End Class