115

VB Ado,net Sadigué, Amine Fed, Bahak

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: VB Ado,net Sadigué, Amine Fed, Bahak
Page 2: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 2 sur 115 TSDI

Page 3: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Avant d’aborder la rédaction de ce tutorial, j’ai

le grand plaisir d’adresser mes sincères

remerciements à mes chers parents qui m’ont

beaucoup aidé, à mes frères et sœurs. Sans

oublier mes copains et copines de TSDI.

Je remercie particulièrement notre cher formateur

Mr. Mohammed BENTALEB qui nous a bien aidé

par les documents et les supports et tous les

conseils utiles pour que notre formation soit solide.

Pour retirer le maximum de ce document, lisez-le du

début à la fin. Ne changez pas de chapitre avant

d’avoir compris celui que vous étiez en train de lire.

Créé par: O.Zakaria Page 3 sur 115 TSDI

Page 4: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

ADO veut dire Activex Data base Objet. Pour avoir accès à partir de VB.NET aux bases de données il faut utiliser ADO.NET.

ADO .NET permet de travailler en deux modes : «Connecté » : le poste client maintient une « connexion » réseau avec le serveur, et lui envoie des requêtes pour lire ou écrire directement dans la base de données distante. «Déconnecté » : le poste client effectue une copie locale des données en mémoire, dans un DataSet (groupe de données). Le DataSet contient des tables qui permettent de copier et d’organiser les données sur le poste client. Les Objets ADO.NET :

1. L'objet Connection : L’objet Connection permet de se connecter à une base de données en donnant le nom du serveur, de la base, et le nom et le mot de passe d’un utilisateur connu du SGDB.

2. L'objet Command: L’objet Command permet d’envoyer à la base de données, des requêtes SQL d’interrogation ou de modification, avec ou sans paramètres.

Avec ExecuteNonQuery de l'objet Command on peut manipuler directement la BD (UPDATE, INSERT, DELETE, CREATE, DROP..).

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).

Créé par: O.Zakaria Page 4 sur 115 TSDI

Page 5: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 5 sur 115 TSDI

Avec ExecuteReader de l'objet Command on peut d’exécuter des requêtes SQL de type SELECT qui renvoient des lignes au poste client.

3. L'objet DataReader: Avec un objet DataReader on extrait les données en lecture seule: une Requête SQL (sur un objet command) charge le DataReader. C’est rapide; on peut lire uniquement les données et aller à l'enregistrement suivant. Il travaille en mode connecté. Il faut créer un objet Connexion puis un objet Command, ensuite on exécute la propriété ExecuteReader pour créer l'objet DataReader; enfin on parcourt les enregistrements avec la méthode Read.

4. L’objet DataAdapter : L’objet DataAdapter est le support du mode « déconnecté ». Il est plus élaboré que le DataReader et contient quatre command s, correspondant aux quatre instructions SQL de base : SELECT, UPDATE, INSERT, DELETE. Il permet de remplir le DataSet, grâce à sa requête SELECT, et éventuellement de répercuter des mises à jour du DataSet vers la base de données via les requêtes UPDATE, INSERT et DELETE.

5. L'objet DataSet: Le DataSet est une représentation en mémoire des données. On charge le DataSet à partir de la base de données. Une fois chargé on peut travailler en mode déconnecté.

Page 6: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Pour effectuer une modification, on modifie le DataSet puis on met à jour la base de donnée à partir du DataSet. Pour remplir un DataSet il faut une Connexion puis un DataAdapter. Il faut créer un objet Connexion puis un objet DataAdapter qui par sa propriété Fill charge le DataSet.

6. L'objet CommandBuilder: Pour mettre à jour la base après modification du DataSet il faut utiliser l’objet CommandBuilder. Remarque : Importer dans tous vos programmes l’espace de noms System.Data.SqlClient qui contient le fournisseur de données pour SqlServer. C’est la fin du blabla… Allez, maintenant on passe à la pratique !  

 

Créé par: O.Zakaria Page 6 sur 115 TSDI

Page 7: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  

TP N° 1: Création d’une Connection par code (1 ère façon)

 

Objectif : Dans cet exercice vous allez Créer une instance de la classe SqlConnection en passant une chaîne de connexion à son constructeur.  

 Travail demandé : 

1. Créer l’interface ci‐dessous : 

2. Importer dans votre programme l’espace de nom qui contient le fournisseur de données pour SqlServer.

3. Créer une instance de la classe SqlConnection, en passant une chaîne de connexion à son constructeur.

4. Ecrire le code du Bouton « ouvrir » qui permet d’ouvrir la Connection et afficher son statut dans la zone de texte.

5. Ecrire le code du Bouton « fermer » qui permet de fermer la Connection et afficher son statut dans la zone de texte.

6. Tester votre application.

Créé par: O.Zakaria Page 7 sur 115 TSDI

Page 8: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 8 sur 115 TSDI

Solution:   

'Importation de l’espace de nom: Imports System.Data.SqlClient Public Class Form1 'Création d'une instance de la classe SqlConnection: Dim con As New SqlConnection ("database=Mybase; server=; integrated security=true") 'Code du Bouton qui permet d'ouvrir la Connection : Private Sub BtnOuvrir_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOuvrir.Click con.Open() Me.TextBox1.Text = con.State.ToString End Sub 'Code du Bouton qui permet de fermer la Connection : Private Sub BtnFermer_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFermer.Click con.Close() Me.TextBox1.Text = con.State.ToString End Sub End Class 

  

 

 

 

 

 

 

 

 

 

Page 9: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 9 sur 115 TSDI

 

TP N° 2: Création d’une Connection par code (2éme façon)

 

Objectif : Dans cet exercice vous allez  créer la connexion avec le constructeur 

non paramétré, et renseigner sa propriété  ConnectionString.  

Travail demandé : 

1. Créer l’interface ci‐dessous :  

 

 

 

 

 

 

 

 

 

2. Créer une instance de la classe SqlConnection, on y utilise sa propriété ConnectionString.

3. Ecrire le code du Bouton « Tester la Connection » qui permet d’afficher son statut dans un message box.

4. Tester votre application.  

 

 

Page 10: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 10 sur 115 TSDI

 

Solution:   

'Importation de l’espace de nom: Imports System.Data.SqlClient Public Class Form2 'Création d'une instance de la classe SqlConnection: Dim con As New SqlConnection 'Utilisation de la propriété ConnectionString : Private Sub Form2_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.ConnectionString = ("database=Mybase; server=; integrated security=sspi") 'Ouvrir la Connection : con.Open () End Sub 'Code du Bouton Tester la Connection : Private Sub BtnTestCon_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnTestCon.Click MsgBox ("L'état actuelle de la Connection est :" + con.State.ToString ()) End Sub End Class 

  

 

 

 

 

Page 11: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  

TP N° 3: Création et Exécution  d’une command Par ExecuteNonQuery () 

 

Objectif : Dans cet exercice vous allez  créer une instance de l’objet 

command  et après vous allez exécuter une requête SQL.  

Travail demandé : 

1. Créer l’interface ci-dessous :  

 

 

 

 

 

 

2. Créer une instance de la classe SqlCommand. 3. Rattacher « le nouveau command » à la connexion. 4. Préciser « le type de command » (ici une requête SQL). 5. Ecrire le texte de la requête SQL qui permet d’ajouter

une nouvelle personne à la table Personne (Code, Nom, Prénom).

6. Tester votre application.  

 

Créé par: O.Zakaria Page 11 sur 115 TSDI

Page 12: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 12 sur 115 TSDI

Solution: 'Importation de l’espace de nom: Imports System.Data.SqlClient Public Class Form3 'Création d'une instance de la classe SqlConnection: Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form3_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la Connection : con.Open() Me.TxtCode.Select() End Sub 'Code du Bouton ajouter : Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click Dim command As SqlCommand ' Création d’un nouveau command command = New SqlCommand 'On rattache le nouveau command à la connexion en cours command .Connection = con ' Type de command : ici une requête SQL command.CommandType = CommandType.Text ' Texte de la requête SQL : command .CommandText = "Insert into personne values (" & Me.TxtCode.Text & ",'" & Me.TxtNom.Text & "','" & Me.TxtPrenom.Text &"')" 'Utilisation de la propriété ExecuteNonquery: command .ExecuteNonQuery() Ms xgBo ("Bien ajouter!!",MsgBoxStyle.Information) End Sub End Class

Page 13: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

 

             TP N° 4 :   Utilisation des commands paramétrés Par code.  

 

Objectif : Dans cet exercice vous allez utiliser des commands paramétrés.  

 Travail demandé : 

1.  Créer l’interface ci-dessous :  

 

 

 

 

 

 

 

 

 

2.  Ecrire le code qui permet de modifier une personne de

table Personne (Code, Nom, Prénom). Utilisation des commands paramétrés.

3. Tester votre application.  

 

 

 

 

Créé par: O.Zakaria Page 13 sur 115 TSDI

Page 14: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 14 sur 115 TSDI

Solution: 'Importation de l’espace de nom: Imports System.Data.SqlClient Public Class Form1 'Création d'une instance de la classe SqlConnection: Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la Connection : con.Open() Me.TxtCode.Select() End Sub 'Code du Bouton modifier : Private Sub BtnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnModifier.Click Dim cmd As New SqlCommand cmd.Parameters.Clear() cmd.Parameters.Add("@code", SqlDbType.Int) cmd.Parameters.Add("@nom", SqlDbType.NVarChar) cmd.Parameters.Add("@prenom",SqlDbType.NVarChar) cmd.Parameters(0).Value = Me.TxtCode.Text cmd.Parameters(1).Value = Me.TxtNom.Text cmd.Parameters(2).Value = Me.TxtPrenom.Text cmd.Connection = con cmd.CommandType = CommandType.Text cmd.CommandText = "update personne set Nom=@nom, Prenom=@prenom where Code=@code" cmd.ExecuteNonQuery() MsgBox("Bien Modifier!",MsgBoxStyle.Information) End Sub End Class

 

Page 15: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  

                  TP N° 5 : Création et Exécution  d’un command Par ExecuteScalar ()

 

Objectif : Dans cet exercice vous allez créer et exécuter un command  par  ExecuteScalar().  

 Travail demandé : 1. Créer l’interface ci‐dessous :  

 

 

 

 

 

 

 

 

 

 2.  Ecrire le code qui permet de calculer le nombre des clients de la table « customers » dans la base de données « northwind ».  

3. Tester votre application.  

 

Créé par: O.Zakaria Page 15 sur 115 TSDI

Page 16: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 16 sur 115 TSDI

 Solution:  

'Importation de l’espace de nom: Imports System.Data.SqlClient Public Class Form1 'Création d'une instance de la classe SqlConnection: Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la Connection : con.Open() End Sub 'Code du Button Calculer: Private Sub BtnCalculer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalculer.Click 'La 2eme façon de créé et initialisé un command : Dim cmd As New SqlCommand("select count(*) from customers ", con) 'L’exécution de le command par ExecuteScalar (): Me.TxtNbr.Text = cmd.ExecuteScalar() End Sub End Class

      

 

Page 17: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  

TP N° 6: Création et Exécution d’un command Par ExecuteReader ().

 

Objectif : Dans cet exercice vous allez créer et exécuter un  command  par  ExecuteReader ().  

 Travail demandé : 

1. Créer l’interface ci-dessous :  

 

 

 

 

 

 

 

  

2. Ecrire le code du bouton « chercher » qui permet : o de chercher une personne par son code saisi dans

la zone de texte et après son nom et son prénom sera affiché dans les autres zones de texte.

o un message s’affiche, si on saisit un code inexistant.

3. Test votre application.

Créé par: O.Zakaria Page 17 sur 115 TSDI

Page 18: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 18 sur 115 TSDI

Solution: 

'Importation de l’espace de nom: Imports System.Data.SqlClient Public Class Form1 'Création d'une instance de la classe SqlConnection: Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la Connection : con.Open() End Sub 'Code du Button chercher: Private Sub Btnchercher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnchercher.Click 'Création et initialisation du command : Dim cmd As New SqlCommand("select * from personne where code=" & Me.TxtCode.Text & "", con) 'Exécution de la command par ExecuteReader : Dim dr As SqlDataReader = cmd.ExecuteReader If dr.Read Then Me.TxtNom.Text = dr(1) Me.TxtPrenom.Text = dr(2) Else MsgBox ("Code introuvable!!",MsgBoxStyle.Exclamation) End If 'N’oublier pas de fermer ExecuteReader : dr.Close() End Sub End Class

  

Page 19: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 19 sur 115 TSDI

 

TP N° 7 : Remplir le combobox et listebox en Mode connecté :

 

Objectif : Dans cet exercice vous allez remplir le combobox et le listebox En mode connecté (avec les objets sqlcommand et SqlDataReader).  

 Travail demandé : 

1. Créer l’interface ci-dessous :  

 

 

       

2. Ecrire le code qui permet de remplir le combobox au démarrage du formulaire par les codes de toutes les personnes.

3. Ecrire le code du Bouton « remplir » qui permet de remplir le listebox par le nom et le prénom de la personne choisi par le code dans le combobox.

4. Tester votre application.    

Page 20: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 20 sur 115 TSDI

Solution: 

Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.Open() 'Remplir le combobox au démarrage du formulaire: Dim cmd As New SqlCommand("select code from personne", con) Dim dr As SqlDataReader = cmd.ExecuteReader While dr.Read Me.ComboCode.Items.Add(dr(0)) End While dr.Close() End Sub 'Code du Bouton Remplir: Private Sub BtnRemplir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click Dim cmd As New SqlCommand ("select Nom, prenom from personne where code=" & Me.ComboCode.Text & "", con) Dim dr As SqlDataReader = cmd.ExecuteReader Me.ListBox1.Items.Clear() If dr.Read Then Me.ListBox1.Items.Add(" Le nom est :" + dr(0) + "") Me.ListBox1.Items.Add("Le Prénom est :" + dr(1) + "") End If dr.Close() End Sub End Sub End Class

 

Page 21: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 21 sur 115 TSDI

 

TP N° 8 : Remplir le Datagrid en Mode Connecté.

 

Objectif : Dans cet exercice vous allez remplir le Datagrid en mode connecté (avec les objets sqlcommand et  SqlDataReader).  

 Travail demandé : 

1. Créer l’interface ci-dessous :  

 

          

2. Ecrire le code du Bouton « remplir le Datagrid » qui permet de remplir le Datagrid par toutes les personnes de la table Personne (Code, Nom, Prénom).

3. Tester votre application.    

Page 22: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 22 sur 115 TSDI

Solution:   Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.Open() End Sub 'Code du Button Remplir le Datagrid: Private Sub BtnRemplir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click 'Déclaration de deux tables (Mytable et dt): Dim mytable As New DataTable Dim dt As New DataTable 'Vider la table Mytable : mytable.Rows.Clear() mytable.Columns.Clear() Dim req As String = "select * from personne" Dim cmd1 As New SqlCommand(req, con) Dim dr As SqlDataReader = cmd1.ExecuteReader 'La méthode GetSchemaTable Permet de récupérer 'les informations des colonnes (schéma des 'données) dans un objet DataTable.

Page 23: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 23 sur 115 TSDI

dt = dr.GetSchemaTable Dim a As Integer = 0 Dim col As DataColumn While a < dt.Rows.Count col = New DataColumn col.ColumnName = dt.Rows(a).Item(0) col.DataType = Type.GetType("System.String") mytable.Columns.Add(col) a = a + 1 End While Dim ligne As DataRow While dr.Read ligne = mytable.NewRow() a = 0 While a < dt.Rows.Count ligne(a) = dr(a) a = a + 1 End While mytable.Rows.Add(ligne) End While dr.Close() 'Mytable sois la source de le Datagrid : Me.DataGrid1.DataSource = mytable End Sub End Class

Page 24: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 24 sur 115 TSDI

TP N° 9 : Premier, dernier, précédent et Suivant en Mode Connecté.

 

Objectif : Dans cet exercice vous allez  créer les boutons de déplacement en mode connecté.  

 Travail demandé : 

1. Créer l’interface ci-dessous :  

 

 

 

 

 

 

 

 

 

 

 2. Ecrire le code pour les boutons de déplacements

« Premier, Suivant, Précèdent, Dernier ».On travaille avec la table: Personne (Code, Nom, Prénom).

(Penser d’utiliser une collection). 3. Tester votre application.

  

Page 25: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 25 sur 115 TSDI

Solution: Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.Open() Dim req As String = "select * from personne" Dim cmd As New SqlCommand(req, con) Dim dr As SqlDataReader = cmd.ExecuteReader While dr.Read With Per Per.Code = dr(0) Per.Nom = dr(1) Per.Prenom = dr(2) End With coll.Add(Per) End While dr.Close() End Sub 'Création d’une structure : Public Structure Personne Public Code As Integer Public Nom As String Public Prenom As String End Structure Dim Per As Personne 'Instanciation d’une collection : Dim coll As New Collection Dim pos As Integer 'Code du Button Premier: Private Sub BtnPremier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremier.Click

Page 26: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 26 sur 115 TSDI

pos = 1 Per = coll.Item(pos) Me.TxtCode.Text = Per.Code Me.TxtNom.Text = Per.Nom Me.TxtPrenom.Text = Per.Prenom End Sub 'Code du Button Dernier: Private Sub BtnDernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDernier.Click pos = coll.count Per = coll.Item(pos) Me.TxtCode.Text = Per.Code Me.TxtNom.Text = Per.Nom Me.TxtPrenom.Text = Per.Prenom End Sub 'Code du Button Précédent: Private Sub BtnPrécédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrécédent.Click pos = pos-1 Per = coll.Item(pos) Me.TxtCode.Text = Per.Code Me.TxtNom.Text = Per.Nom Me.TxtPrenom.Text = Per.Prenom End Sub 'Code du Button Suivant: Private Sub BtnDernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDernier.Click pos = pos+1 Per = coll.Item(pos) Me.TxtCode.Text = Per.Code Me.TxtNom.Text = Per.Nom Me.TxtPrenom.Text = Per.Prenom End Sub End Class

Page 27: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 27 sur 115 TSDI

TP N° 10 : Création et initialisation d’une DataAdapter et DataSet par code.

 

Objectif : Dans cet exercice vous allez  créer et initialiser les objets SqlDataAdapter et Dataset par code en mode déconnecté.  

Travail demandé : 1. Créer l’interface ci-dessous : 

 

 

 

 

 

 

 

 

  

2. Ecrire le code pour le Bouton « Ajouter » qui permet d’ajouter une nouvelle personne de la table personne (Code, Nom, Prénom) en mode déconnecté.

3. Ecrire le code pour le Bouton « Modifier » qui permet de modifier une personne de la table personne (Code, Nom, Prénom) en mode déconnecté.

4. Ecrire le code pour le Bouton « Supprimer » qui permet de supprimer une personne de la table personne (Code, Nom, Prénom) en mode déconnecté.

5. Tester votre application.

Page 28: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 28 sur 115 TSDI

Solution:  Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") 'Création des objets sqldataAdapter,Dataset et 'SqlCommandBuilder: Dim da As SqlDataAdapter Dim ds As New DataSet Dim builder As SqlCommandBuilder Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load da = New SqlDataAdapter("select * from personne" , con) da.Fill (ds, "personne") End Sub 'Code du Button Ajouter: Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click Dim ligne As DataRow ligne = ds.Tables("personne").NewRow ligne(0) = Me.TxtCode.Text ligne(1) = Me.TxtNom.Text ds.Tables("personne").Rows.Add(ligne) builder = New SqlCommandBuilder(da) da.Update(ds, "personne") ds.Tables("personne").GetChanges() ds.AcceptChanges() MsgBox("Bien Ajouter!!",MsgBoxStyle.Information) End Sub

Page 29: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 29 sur 115 TSDI

'Code du Button Modifier: Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click Dim req As String = "update personne set Nom='" & Me.TxtNom.Text & "', prenom='" & Me.TxtPrenom.Text & "' where Code= " & Me.TxtCode.Text & "" da = New SqlDataAdapter (req, con) da.Update(ds, "personne") builder = New SqlCommandBuilder(da) ds.Tables("personne").AcceptChanges() MsgBox("Bien Modifier!!", MsgBoxStyle.Information) End Sub 'Code du Button Supprimer: Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click Dim req As String = "delete from personne where Code="& Me.TxtCode.Text & "" da = New SqlDataAdapter(req, con) builder = New SqlCommandBuilder(da) da.Update(ds, "personne") ds.Tables("personne").AcceptChanges() da.Fill(ds, "personne") MsgBox("Bien Supprimer !!", MsgBoxStyle.Information) End Sub End Class

     

Page 30: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  

Créé par: O.Zakaria Page 30 sur 115 TSDI

TP N° 11 : Remplir le combobox et listebox En Mode deconnecté.

Objectif : Dans cet exercice vous allez remplir le combobox et le listebox mais cette fois en mode déconnecté (avec les objet SqlDataAdapter et  DataSet).  

 Travail demandé : 

1. Créer l’interface ci-dessous :

remplir le combobox par les codes des personnes et

3.  

 2. Ecrire le code du Bouton « Remplir » qui permet de

la listebox par les prénoms. Tester votre application.

Page 31: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 31 sur 115 TSDI

Solution: 

Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("database=Personnes; server=; integrated security=true") 'Création des objets sqldataAdapter,Dataset : Dim da As SqlDataAdapter Dim ds As New DataSet Dim pos As Integer 'Le code pour le Bouton remplir : Private Sub BtnRemplir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click pos = 0 da = New SqlDataAdapter("select code from personne", con) ds.Clear() da.Fill(ds, "CodePer") Me.ComboCode.Items.Clear() While pos < ds.Tables("CodePer").Rows.Count - 1 Me.ComboCode.Items.Add(ds.Tables("CodePer").Rows(pos).Item(0)) pos = pos + 1 End While da = New SqlDataAdapter("select prenom from personne", con) da.Fill(ds, "prenomPer") Me.ListBox1.Items.Clear() pos = 0 While pos < ds.Tables("prenomPer").Rows.Count - 1 Me.ListBox1.Items.Add(ds.Tables("prenomPer").Rows(pos).Item(0)) Me.ListBox1.Items.Add("-----------------") pos = pos + 1 End While End Sub End class

Page 32: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 32 sur 115 TSDI

TP N° 12 : Remplir le Datagrid En Mode Deconnecté.

 :Objectif  Dans cet exercice vous allez remplir le Datagrid en mode déconnecté (avec les objet sqldataAdapter et  DataSet).  

 Travail demandé : 

1. Créer l’interface ci-dessous :

 

2.démarrage du formulaire par les codes de toutes les

3. atagrid par toutes les informations de la

4.   

 

 

 

 

 

 

 

 

  

Ecrire le code qui permet de remplir le combobox au

personnes. Ecrire le code du Bouton « remplir » qui permet de remplir le Dpersonne choisi par le code dans le combobox. Tester votre application.

Page 33: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 33 sur 115 TSDI

Solution: 

Imports System.Data.SqlClient Public Class Form1 Dim con As NewSqlConnection("database=personnes; server=; integrated security=sspi") Dim da As SqlDataAdapter Dim ds As New DataSet Dim pos As Integer 'Remplir le combobox au démarrage du formulaire: Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load pos = 0 da = New SqlDataAdapter("select code from personne", con) ds.Clear() da.Fill(ds, "CodePer") Me.ComboCode.Items.Clear() While pos < ds.Tables("CodePer").Rows.Count - 1 Me.ComboCode.Items.Add(ds.Tables("CodePer").Rows(pos).Item(0)) pos = pos + 1 End While End Sub 'Code de la Bouton Remplir : Private Sub BtnRemplir_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click da = New SqlDataAdapter("select * from personne where code=" & Me.ComboCode.Text & "", con) ds.Clear() da.Fill(ds, "Perso") Me.DataGrid1.SetDataBinding(ds, "perso") End Sub End Class

Page 34: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

 

TP N° 13 : Premier, dernier, précédent et

Créé par: O.Zakaria Page 34 sur 115 TSDI

Suivant en Mode déconnecté.

 

Objectif : D rcice vous allez  créer les boutons de déplacements en ans cet exemode déconnecté.  

 Travail dema dé :n  

ce ci-dessous :

2. Ecrire le code pour les boutons de déplacements il avec

Personne (Code

1. Créer l’interfa  

« Premier, Suivant, Précèdent, Dernier ».On travala table:

, Nom, Prénom).

3. Test votre application.

Page 35: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 35 sur 115 TSDI

Solution:  Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("database=personnes; server=; integrated security=sspi") Dim da As SqlDataAdapter Dim ds As New DataSet Dim pos As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load da = New SqlDataAdapter("select * from personne", con) da.Fill(ds, "personne") End Sub 'Code du Button Premier: Private Sub BtnPremier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremier.Click pos = 0 Me.TxtCode.Text=ds.Tables("personne").Rows(pos).Item(0) Me.TxtNom.Text =ds.Tables("personne").Rows(pos).Item(1) Me.TxtPren.Text=ds.Tables("personne").Rows(pos).Item(2) End Sub 'Code du Button Dernier: Private Sub btnDernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDernier.Click pos = ds.Tables("personne").Rows.Count – 1 Me.TxtCode.Text=ds.Tables("personne").Rows(pos).Item(0) Me.TxtNom.Text =ds.Tables("personne").Rows(pos).Item(1) Me.TxtPren.Text=ds.Tables("personne").Rows(pos).Item(2) End Sub

Page 36: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 36 sur 115 TSDI

'Code du button Précédent: Private Sub bntPrécédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntPrécédent.Click pos = pos - 1 Me.TxtCode.Text = ds.Tables("personne").Rows(pos).Item(0) Me.TxtNom.Text = ds.Tables("personne").Rows(pos).Item(1) Me.TxtPrenom.Text = ds.Tables("personne").Rows(pos).Item(2) End Sub 'Code du button Dernier: Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuivant.Click pos = pos + 1 Me.TxtCode.Text = ds.Tables("personne").Rows(pos).Item(0) Me.TxtNom.Text = ds.Tables("personne").Rows(pos).Item(1) Me.TxtPrenom.Text = ds.Tables("personne").Rows(pos).Item(2) End Sub End Class

Page 37: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 37 sur 115 TSDI

TP N° 14 : la feuille de démarrage (MDI)

 

Objectif : Dans cet exercice vous allez  créer une feuille de démarrage (MDI). 

 Travail demandé :         On va travailler avec la base de données Produit_Client           qui contient  les deux tables :         Client (Code_Cli, Nom_Cli, Pren_Cli)         Produit (Code_Pro, Nom_Pro, Prix_Pro, Code_Cli) 

 

1. Au lancement de l’application, présenter une feuille de démarrage (MDI) sous cette forme :  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 38: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

2. Le sou menu Client du menu fichier permet d’afficher une feuille, comme ci‐dessous :   

 

 

 

 

 

  

 

 

 

 

Ecrire le code du chargement de la feuille.  Ecrire le code qui permet de remplir le combobox.  Ecrire le code pour les boutons de déplacements (Premier, Suivant, Précèdent, Dernier).  Ecrire le code pour les  boutons : Nouveau, Ajouter, Modifier et Supprimer. 

 

 

 

 

 

Créé par: O.Zakaria Page 38 sur 115 TSDI

Page 39: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  3. Le sou menu produit du menu fichier permet d’afficher une feuille, comme ci‐dessous :  

Créé par: O.Zakaria Page 39 sur 115 TSDI

Ecrire le code du chargement de la feuille.  Ecrire le code qui permet de remplir le combobox.  Ecrire le code pour les boutons de déplacements (Premier, Suivant, Précèdent, Dernier).  Ecrire le code pour les  boutons : Nouveau, Ajouter, Modifier et Supprimer. 

 

4. Tester votre application. 

Page 40: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 40 sur 115 TSDI

Solution:  Imports System.Data.SqlClient 'On va ajouter un module (parce que on travail par plusieurs formulaire): Module Module1 Public con As New SqlConnection ("database=Client_Produit; server=; integrated security=sspi") Public cmd As SqlCommand Public dr As SqlDataReader Public da As SqlDataAdapter Public ds As New DataSet Public Form_Client As New Form2 Public Form_Produit As New Form3 Public pos As Integer End Module 'Code du formulaire MDI: Public Class Form1 Private Sub Form14_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Le formulaire devient un MDI: Me.IsMdiContainer = True End Sub

Page 41: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 41 sur 115 TSDI

'Le code du chargement de la feuille Client: Private Sub MenuItem2_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click 'Tu précises lMdi de la formulaire client : Form_Client.MdiParent=Me 'Tu donnes le size maximum au formulaire client: Form_Client.WindowState = FormWindowState.Maximized Form_Client.Show() Form_Produit.Hide() End Sub ' Le code du chargement de la feuille produit: Private Sub MenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click 'Tu précises lMdi de la formulaire produit : Form_Produit.MdiParent=Me 'Tu donnes le size maximum au formulaire produit: Form_Produit.WindowState = FormWindowState.Maximized Form_Client.Hide() Form_Produit.Show() End Sub End Class

Page 42: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 42 sur 115 TSDI

'Le code de la Formulaire Client : Imports System.Data.SqlClient Public Class Form2 Private Sub Form2_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.Open() Me.TxtCode.Select() 'Remplir le dataset par tous les clients: da = New SqlDataAdapter("select * from client", con) da.Fill(ds, "client") End Sub 'Créé une procédure qui permet de remplir le Dataset 'On appelé cette procédure ds les Bouton 'Ajouter, modifier et supprimer: Public Sub RemplirDS() ds.Clear() da = New SqlDataAdapter("select * from client", con) da.Fill(ds, "client") End Sub 'Le code de de Bouton nouveau : Private Sub btnNouveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNouveau.Click Me.TxtCode.Text = "" Me.TxtNom.Text = "" Me.TxtPrenom.Text = "" Me.TxtCode.Select() End Sub

Page 43: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 43 sur 115 TSDI

'Le code du Bouton Ajouter : Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click cmd = New SqlCommand("insert into client values (" & Me.TxtCode.Text & ",'" & Me.TxtNom.Text & "','" & Me.TxtPrenom.Text & "')", con) cmd.ExecuteNonQuery() MsgBox("le client est ajouté !!", MsgBoxStyle.Information) 'L’appel de la procédure RempirDS: RemplirDS() End Sub 'Le code du Bouton modifier : Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click cmd = New SqlCommand("update client set nom_cli='" & Me.TxtNom.Text & "', pren_cli='" & Me.TxtPrenom.Text & "' where code_cli=" & Me.TxtCode.Text & "", con) cmd.ExecuteNonQuery() MsgBox("le client est Modifié !!", MsgBoxStyle.Information) 'L’appel de la procédure RempirDS: RempirDS() End Sub 'Le code du Bouton supprimer : Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click cmd = New SqlCommand("delete client where code_cli=" & Me.TxtCode.Text & "", con) cmd.ExecuteNonQuery() MsgBox("le client est supprimé !!",MsgBoxStyle.Information) 'L’appel de la procédure RempirDS: RempirDS() End Sub

Page 44: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 44 sur 115 TSDI

'Le code du Bouton premier : Private Sub BtnPremier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremier.Click pos = 0 Me.TxtCode.Text = ds.Tables("client").Rows(pos).Item(0) Me.TxtNom.Text = ds.Tables("client").Rows(pos).Item(1) Me.TxtPren.Text= ds.Tables("client").Rows(pos).Item(2) End Sub 'Le code du Bouton dernier : Private Sub btnDernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDernier.Click pos = ds.Tables("client").Rows.Count - 1 Me.TxtCode.Text = ds.Tables("client").Rows(pos).Item(0) Me.TxtNom.Text = ds.Tables("client").Rows(pos).Item(1) Me.TxtPren.Text= ds.Tables("client").Rows(pos).Item(2) End Sub 'Le code du Bouton suivant : Private Sub btnSuivant_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuivant.Click Me.bntPrécédent.Enabled = True If pos = ds.Tables("client").Rows.Count - 1 Then Me.btnSuivant.Enabled = True Else pos = pos + 1 Me.TxtCode.Text = ds.Tables("client").Rows(pos).Item(0) Me.TxtNom.Text = ds.Tables("client").Rows(pos).Item(1) Me.TxtPren.Text= ds.Tables("client").Rows(pos).Item(2) End If End Sub

Page 45: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 45 sur 115 TSDI

'Le code du Bouton précédent : Private Sub bntPrécédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntPrécédent.Click Me.btnSuivant.Enabled = True If pos = 0 Then Me.bntPrécédent.Enabled = True Else pos = pos - 1 Me.TxtCode.Text = ds.Tables("client").Rows(pos).Item(0) Me.TxtNom.Text = ds.Tables("client").Rows(pos).Item(1) Me.TxtPren.Text= ds.Tables("client").Rows(pos).Item(2) End If End Sub End Class

---------------------

'Le code de la Formulaire produit : Imports System.Data.SqlClient Public Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.Open() 'Remplir le datset par tous les clients: da = New SqlDataAdapter("select * from produit", con) da.Fill(ds, "produit") 'Remplir le combobox par les codes des clients: cmd = New SqlCommand("select code_cli from client",con) Dim dr As SqlDataReader = cmd.ExecuteReader While dr.Read Me.ComboClient.Items.Add(dr(0)) End While dr.Close() End Sub

Page 46: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 46 sur 115 TSDI

'Créé une procédure qui permet de remplir le DataSet 'On appelé cette procédure ds les Bouton 'Ajouter, modifier et supprimer: Public Sub RemplirDS() ds.Clear() da = New SqlDataAdapter("select * from produit", con) da.Fill(ds, "produit") End Sub 'Le code de de Bouton nouveau : Private Sub btnNouveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNouveau.Click Me.TxtCode.Text = "" Me.TxtNom.Text = "" Me.TxtPrix.Text = "" Me.ComboClient.SelectedIndex = -1 Me.TxtCode.Select() End Sub 'Le code de de Bouton Ajouter : Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click cmd = New SqlCommand("insert into produit values (" & Me.TxtCode.Text & ",'" & Me.TxtNom.Text & "'," & Me.TxtPrix.Text & "," & Me.ComboClient.Text & ")", con) cmd.ExecuteNonQuery() MsgBox("le produit est ajouté !!", MsgBoxStyle.Information) 'L’appel de la procédure RemplirDS: RemplirDS() End Sub

Page 47: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 47 sur 115 TSDI

'Le code de de Bouton Modifier : Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click cmd = New SqlCommand("update produit set code_pro='" & Me.ComboClient.Text & "', nom_pro='" & Me.TxtNom.Text & "', prix_pro='" & Me.TxtPrix.Text & "' where code_cli=" & Me.TxtCode.Text & "", con) cmd.ExecuteNonQuery() MsgBox ("le produit est Modifié !!", MsgBoxStyle.Information) 'L’appel de la procédure RemplirDS: RemplirDS() End Sub 'Le code de Bouton supprimer : Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click cmd = New SqlCommand("delete produit where code_pro=" & Me.TxtCode.Text & "", con) cmd.ExecuteNonQuery() MsgBox ("le produit est supprimé !!", MsgBoxStyle.Information) 'L’appel de la procédure RemplirDS: RemplirDS() End Sub

Page 48: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 48 sur 115 TSDI

'Le code de Bouton premier : Private Sub BtnPremier_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremier.Click pos = 0 Me.TxtCode.Text =ds.Tables("produit").Rows(pos).Item(0) Me.TxtNom.Text =ds.Tables("produit").Rows(pos).Item(1) Me.TxtPrix.Text =ds.Tables("produit").Rows(pos).Item(2) Me.ComboCli.Text=ds.Tables("produit").Rows(pos).Item(3) End Sub 'Le code de Bouton dernier : Private Sub btnDernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDernier.Click pos = ds.Tables("produit").Rows.Count - 1 Me.TxtCode.Text=ds.Tables("produit").Rows(pos).Item(0) Me.TxtNom.Text =ds.Tables("produit").Rows(pos).Item(1) Me.TxtPrix.Text =ds.Tables("produit").Rows(pos).Item(2) Me.ComboCli.Text=ds.Tables("produit").Rows(pos).Item(3) End Sub 'Le code de Bouton suivant : Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuivant.Click Me.bntPrécédent.Enabled = True If pos = ds.Tables("produit").Rows.Count –1 Then Me.btnSuivant.Enabled = True Else pos = pos + 1 Me.TxtCode.Text =ds.Tables("produit").Rows(pos).Item(0) Me.TxtNom.Text =ds.Tables("produit").Rows(pos).Item(1) Me.TxtPrix.Text =ds.Tables("produit").Rows(pos).Item(2) Me.ComboCli.Text=ds.Tables("produit").Rows(pos).Item(3) End If End Sub

Page 49: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 49 sur 115 TSDI

'Le code de Bouton précédent : Private Sub bntPrécédent_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntPrécédent.Click Me.btnSuivant.Enabled = True If pos = 0 Then Me.bntPrécédent.Enabled = True Else pos = pos - 1 Me.TxtCode.Text =ds.Tables("produit").Rows(pos).Item(0) Me.TxtNom.Text =ds.Tables("produit").Rows(pos).Item(1) Me.TxtPrix.Text =ds.Tables("produit").Rows(pos).Item(2) Me.ComboCli.Text=ds.Tables("produit").Rows(pos).Item(3) End If End Sub End Class

Page 50: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 50 sur 115 TSDI

TP N° 15 : Création et exécution d’un crystal Report avec le Dataset.

 

Objectif : Dans cet exercice vous allez  créer et exécuter un cristal report a set. vec le Data

 Travail demandé : 

1. Créer l’interface ci-dessous :

de la

3.  

 

 2. Ecrire le code du Bouton « afficher » qui permet de

remplir le CrystalReportViewer par les informationspersonne dont le code a été saisi dans la zone de texte. Tester votre application.

Page 51: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution: es étapes pour ajouter un cristal report :L

uer par la touche droite sur le uter » et

:

2.un nom : par exemple « Etat1 » puis

1. Cliqprojet puis cliquer sur « ajochoisi « ajouter un nouvel élément »

Créé par: O.Zakaria Page 51 sur 115 TSDI

Choisir « Etat Cystal Reports » et donner

cliquer sur ouvrir:

Page 52: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

r sur ok :

3. Cliquer sur plus tard :

4. ne rien changer et clique

Créé par: O.Zakaria Page 52 sur 115 TSDI

Page 53: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 5.

6. Choisir « Microsoft OLE DB Provider for SQL Server » puis cliquer sur suivant :

double clique sur « OLD DB(ADO) » :

Créé par: O.Zakaria Page 53 sur 115 TSDI

Page 54: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 7.

8. Cliquer sur terminer :

Cocher la check box de la sécurité intégrée puis choisir une base de données : dans cet exercice en travaillant avec la Base de données « personnes » puis cliquer sur suivant :

Créé par: O.Zakaria Page 54 sur 115 TSDI

Page 55: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

9. Insérer les tables puis cliquer sur

10. Insérer les colonnes puis cliquer sur suivant:

suivant:

Créé par: O.Zakaria Page 55 sur 115 TSDI

Page 56: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

11. Sélectionner un style puis cliquer sur terminer :

12. maintenant la préparation du cristal

report est terminée et voila le résultatfinal :

Créé par: O.Zakaria Page 56 sur 115 TSDI

Page 57: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 2). Le code du Bouton afficher : Imports System.Data.SqlClient Public Class Form1 Private Sub Afficher_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAfficher.Click Dim con As NewSqlConnection ("database=Personnes; server=; integrated security=sspi") Dim da As New SqlDataAdapter ("select * from personne where code=" & Me.Txtcode.Text & "", con) Dim ds As New DataSet da.Fill(ds, "Per") Dim cr As New Etat1 Me.CrystalReportViewer1.ReportSource = cr cr.SetDataSource(ds.Tables("per")) End Sub  

Créé par: O.Zakaria Page 57 sur 115 TSDI

Page 58: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

TP N° 16 : Création et exécution d’un crystal Report avec les paramètres.

 

Objectif : Dans cet exercice vous allez  utiliser les paramètres pour  et exécuter un report. 

 avail demandé :Tr   Créer l’interface ci-dessous :

T « Orders » de la base de données « Northwind »

1.

ravailler avec la table   

u Bouton « Afficher » qui permet de remplir le CrystalReportViewer par les informations de la table « Orders » dont le « OrdersID » a été saisi dans la zone de texte.

3. Tester votre application.

2. Ecrire le code d

Créé par: O.Zakaria Page 58 sur 115 TSDI

Page 59: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution :       Nous avons vu dans le TP précédent comment ajouter un état, Mais n’oublier pas au moment d’ajouter la connexion d’écrire (local) dans leserveur. Maintenant on passe à ajouter un paramètre. Les étapes pour ajouter un paramètre :

 

 1. chercher dans la barre de menu« Affichage » et choisir «Autres fenêtres» puis choisir « structure de document »: 

2. dans « Explorateur de champs » cliquer par la paramtouche droite sur « champ de

choisir « Nouveau » : ètre » et

 

Créé par: O.Zakaria Page 59 sur 115 TSDI

Page 60: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 3 , et choisir le «Type de valeur» ici le paramètre est un nombre, puis cliquer sur « ok » :  

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

 

 

 

. donner un nom au paramètre, par exemple «p1»

Remarquez-vous que le paramètre est ajouté :  

 

 

 

 

 

 

 

 

 

 

Créé par: O.Zakaria Page 60 sur 115 TSDI

Page 61: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique  

5 Clique t et

 

6.  ttacher le p p «OrderId» Puis cliquer sur

. r par la touche droite sur l’étachoisir «Etat» puis «Modifier la formule de section »et cliquer sur «Enregistrements»:

 A aramètre avec le cham

pour sauvegarder.

 

Créé par: O.Zakaria Page 61 sur 115 TSDI

Page 62: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 7. le paramètre est attaché au champ : 8. Maintenant on passe au code :

Imports System.Data.SqlClient Public Class Form1 'Le code po uton afficher: ur l oe b Private icher_Click(ByVal sendeSub Aff r As System.Object, ByVal e As System.EventArgs) Handles Afficher.Click 'Création d'une instance du cristal report Dim cr As New CrystalReport1 'Le paramètre prend sa valeur au zone de texte: cr.SetParameterValue("p1", Me.TextBox1.Text) 'Prisiez la source de CrystalReportViewer: Me.CrystalReportViewer1.ReportSource = cr End Sub End Class

 

 

 

 

 

Créé par: O.Zakaria Page 62 sur 115 TSDI

Page 63: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 63 sur 115 TSDI

 

TP N° 17: l’utilisation et l’exécution des Procédures stockées.

 

Objectif : Dans cet exercice vous allez  utiliser les procédures stockées au lieu des requêtes SQL server. 

Travail demandé : 1. Créer l’interface ci-dessous :

 

 

 

 

 

 

 

2. Ecrire le code pour le Bouton « Ajouter » qui permet d’ajouter une nouvelle personne de la table personne (Code, Nom, Prénom) en utilisant une procédure stockée.

3. Ecrire le code pour le Bouton « Modifier » qui permet de modifier une personne de la table personne (Code, Nom, Prénom) en utilisant une procédure stockée.

4. Ecrire le code pour le Bouton « Supprimer » qui permet de supprimer une personne de la table personne (Code, Nom, Prénom) en utilisant une procédure stockée.

5. Tester votre application.

Page 64: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution: Les étapes pour créer une procédure stockée :

 1. chercher dans la barre de menu « Affichage » t choisir « Explorateur de serveur » :

e

Créé par: O.Zakaria Page 64 sur 115 TSDI

Page 65: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 65 sur 115 TSDI

Apprendre ADO.Net en pratique 2. dans « Explorateur de serveur » cliquer sur

« Connexion de données » et choisir « ajouter ne connexion » : u

3. Cocher « utiliser la sécurité intégrée de Windows NT » puis sélectionner la base de données sur le serveur dans ce cas on choisit la base de données « Personnes » et on clique sur ok :

Créé par: O.Zakaria Page 65 sur 115 TSDI

Page 66: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 4. on clique sur la base de données «Personnes» qui a été ajoutée, on choisit et on clique parla touche droite su

r «procédures stockées» puis

cl s»

5. voila le résultat de tout ce travail. intenant procédures ockées qu’on veut :

on ique sur «Nouvelle procédure stockée

Ma on peut écrire toutes lesst

Créé par: O.Zakaria Page 66 sur 115 TSDI

Page 67: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

• Création de la procédure stockée «Ajouter» :

Création de la procédure stockée «Modifier» :

Création de la procédure stockée «Supprimer»:

Créé par: O.Zakaria Page 67 sur 115 TSDI

Page 68: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique Impo .SqlClient rts System.Data Public Class Form1 Di con As New SqlConnection (m "database=personnes; server=; integrated security=sspi") Dim cmd As New SqlCommand Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load con.Open() End Sub 'Le code du bouton ajouter : er As Private Sub BtnAjouter_Click(ByVal sendSy Handles stem.Object, ByVal e As System.EventArgs)BtnAjouter.Click cmd = New SqlCommand cmd.Parameters.Add("@code", SqlDbType.Int.Int) cmd.Parameters.Add("@nom", SqlDbType.VarChar) cmd.Parameters.Add("@prenom", SqlDbType.VarChar) cmd.Parameters(0).Value = Me.TxtCode.Text cmd.Parameters(1).Value = Me.TxtNom.Text cmd.Parameters(2).Value = Me.TxtPrenom.Text cmd.Connection = con cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = "Ajouter" cmd.ExecuteNonQuery() MsgBox("Bien Ajouté!!", MsgBoxStyle.Information) End Sub Private Sub Fermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Fermer.Click 'Fermer la connexion : con.Close() 'Fermer le programme : Application.Exit End Sub

Créé par: O.Zakaria Page 68 sur 115 TSDI

Page 69: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 69 sur 115 TSDI

'Le code du bouton modifier : Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click cmd = New SqlCommand cmd.Parameters.Add("@code", SqlDbType.Int.Int) cmd.Parameters.Add("@nom", SqlDbType.VarChar) cmd.Parameters.Add("@prenom", SqlDbType.VarChar) cmd.Parameters(0).Value = Me.TxtCode.Text cmd.Parameters(1).Value = Me.TxtNom.Text cmd.Parameters(2).Value = Me.TxtPrenom.Text cmd.Connection = con cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = "Modifier" cmd.ExecuteNonQuery() MsgBox("Bien Modifier!!", MsgBoxStyle.Information) End Sub 'Le code du bouton Supprimer : Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click cmd = New SqlCommand cmd.Parameters.Add("@code", SqlDbType.Int.Int) cmd.Parameters(0).Value = Me.TxtCode.Text cmd.Connection = con cmd.CommandType = CommandType.StoredProcedure cmd.CommandText = "supprimer" cmd.ExecuteNonQuery() MsgBox("Bien supprimer!!", MsgBoxStyle.Information) End Sub End Class

Page 70: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 70 sur 115 TSDI

TP N° 18: Création et configuration une Connexion avec l’assistant.

 

Objectif : Dans cet exercice vous allez  créer et configurer une connexion avec l’assistant. 

 1. Créer l’interface ci-dessous :

avec l’assistant et choisir une

ester la Connection » qui statut dans un message box.

votre application.  

 

 

 

 

 

 

 

 

 

 

2. Ajouter une connexionbase de données : par exemple o

n choisit la base de

données « northwind »3. Ecrire le code du Bouton « T

permet d’afficher son 4. Tester

Page 71: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique Solution :

Les étapes pour ajouter une connexion avec

l’assistant: 1. Dans « la boite à outil » on choisit données » puis on glisser « sqlConnexion » dans le formulaire :

. la connexion est ajoutée, on clique par la touche roite puis on choisit propriété :

«

2d

Créé par: O.Zakaria Page 71 sur 115 TSDI

Page 72: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 72 sur 115 TSDI

Apprendre ADO.Net en pratique 3. on donne de «sqlConne

un nom a la connexion a la place xion1» on écrit:par exemple «con»

on

on clique sur ok:

puis dans la propriété «ConnectionString» choisit « Nouvelle connexion » :

4. Cocher « utiliser la sécurité intégrée de Windows NT » puis sélectionner la base de données sur le serveur, dans ce cas on choisit la base de données « Northwind » et

Créé par: O.Zakaria Page 72 sur 115 TSDI

Page 73: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 73 sur 115 TSDI

'Le code : Public Class Form1 Private sender Sub Form1_Load(ByValAs System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la Connection : con.Open() End Sub 'Le code du bouton Tester la Connexion : Private Sub BtnTeste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tester.Click MsgBox(con.State.ToString, MsgBoxStyle.Information) End Sub End Class

Page 74: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 74 sur 115 TSDI

TP N° 19: Création et configuration un « Command » avec l’assistant.

 

Objectif : Dans cet exercice vous allez  créer et configurer un « command » avec l’assistant. 

 r l’interface ci-de1. Crée ssous :

 

« command » avec l’assistant. r « le nouveau command » à la connexion

« personnes » avec l’assistant. 4. Ecrire le code qui permet de remplir le combobox au

démarrage du formulaire par les codes de toutes les personnes.

5. Ecrire le code du Bouton « remplir » qui permet de le nom et le prénom de la

personne choisi par le code dans le combobox. 6. Tester votre application.

 

 

 

 

 

 

 

 

 

un2. Ajouter3. Rattache

remplir le listebox par

 

 

Page 75: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution : Les  

l’as 

1. Dans « la boite à outil » on choisit ées » puis on glisser « SqlCommand »

2. le « command » est ajouté, on clique par la

touche droite puis on choisit propriété :

 étapes pour créer et configurer un « command » avecsistant : 

« donndans le formulaire :

Créé par: O.Zakaria Page 75 sur 115 TSDI

Page 76: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 3. on donne un nom au « command » à la plac«sqlCommand1» on écrit:par exemple «cmd» pudans la p

e de is

ropriété «Connection» on choisit « Nouveau » :

. ndows NT » puis sélectionner la base de nnées sur le serveur dans ce cas on choisit base de données « Personnes » et on clique r k :

4 Cocher « utiliser la sécurité intégrée de Widolasu o

Créé par: O.Zakaria Page 76 sur 115 TSDI

Page 77: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 5. Dans les propriétés de « command » on

x « Toutes les colonnes » puis cliquer sur

cliquer sur la propriété « commandText » pour choisir les tables, on clique sur « ajouter » :

6. Cocher dans la table « personne » le check book.   

Créé par: O.Zakaria Page 77 sur 115 TSDI

Page 78: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 78 sur 115 TSDI

Imports System.Data.SqlClient Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la Connection : SqlConnection1.Open() 'Remplir le combobox au démarrage du formulaire: Dim dr As SqlDataReader = cmd.ExecuteReader While dr.Read Me.ComboCode.Items.Add(dr(0)) End While End Sub Pour remplir le listebox il faut travailler par un autre « command » .on suive les mêmes étapes précédents. Mais cette fois on ajoute un paramètre :

Page 79: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique Cliquer sur ajouter et donner au paramètre le

s choisir le type « Int » et

nom « @code » puicliquer sur ok. Configurer la propriété « CommandText » et écrire la requête : Select personne.* from personne where code=@code

Créé par: O.Zakaria Page 79 sur 115 TSDI

Page 80: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 80 sur 115 TSDI

Apprendre ADO.Net en pratique ' Le code du bout on Remplir :

Private sender Sub BtnRemplir_Click(ByValAs System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click cmd2.Parameters(0).Value = Me.ComboCode.Text Dim dr As SqlDataReader = cmd2.ExecuteReader Me.ListBox1.Items.Clear() If dr.Read Then Me.ListBox1.Items.Add(" Le nom est :" + dr(1) + "") Me.ListBox1.Items.Add("Le Prénom est :" + dr(2) + "") End If dr.Close() End Sub End Class

Créé par: O.Zakaria Page 80 sur 115 TSDI

Page 81: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 81 sur 115 TSDI

TP N°20: Création et initialisation d’un DataAdapter et DataSet avec l’assistant.

 

bjectif :O  Dans cet exercice vous allez  créer et initialiser les objets SqlDataAdapter et Dataset avec l’assistant. 

 

Travail demandé : 1. Créer l’interface ci-dessous :

 

 

 

 

 

 

 

 

 

 

2. Ecrire le code du Bouton « Remplir le Datagrid » qui permet de remplir le Datagrid par toutes les personnes de la table Personne (Code, Nom, Prénom). (on travaille avec l’assistant)

3. Tester votre application.

Page 82: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution : Les ec l’as 1. Dans « la boite à outil » on choisit « données » puis on glisser « SqlDataAdapter » dans le formulaire :

2.

 étapes pour créer et configurer un «SqlDataAdapter » avsistant : 

Cliquer sur suivant :

Créé par: O.Zakaria Page 82 sur 115 TSDI

Page 83: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 3. on choisit la base de données « Personnes »

4.

et on clique sur suivant :

Créé par: O.Zakaria Page 83 sur 115 TSDI

cliquer sur suivant :

Page 84: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

5. Cliquer sur « Générateur de requête » :

6.

Choisir la table personne, et cliquer sur « ajouter » puis cliquer sur « fermer »:

Créé par: O.Zakaria Page 84 sur 115 TSDI

Page 85: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 7. Cocher dans la table « personne » le check box « Toutes les colonnes » puis cliquer sur ok.

 8. Cliquer sur suivant : 

Créé par: O.Zakaria Page 85 sur 115 TSDI

Page 86: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 8. Cliquer sur terminer :

9.

Le « DataAdapter » est ajouté, on clique par la touche droite et on choisit « propriétés » :

Créé par: O.Zakaria Page 86 sur 115 TSDI

Page 87: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 10.

place de «SqlDataAdapte on donne un nom au « DataAdapter », à la

r1 » on écrit: par exemple «da» :

inten dapter» passe a ajouté le DataSet : s étapes pour créer et configurer un « Dataset» avec 

Créé par: O.Zakaria Page 87 sur 115 TSDI

Ma ant on termine l’ajoute du «DataAonLel’assistant :

ormulaire :

 

1. Dans « la boite à outil » on choisit « données » puis on glisser « DataSet » dans le f

Page 88: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

2. Cocher « Groupe de données non typé » et uer sur ok : cliq

4. donner un nom au « DataSet », à la

propriété « tables »:

3. Le « DataSet » est ajouté, cliquer par la touche droite et choisir « propriétés » :

place de «Dataset1» écrire: par exemple «ds» et cliquer sur (collection) de la

Créé par: O.Zakaria Page 88 sur 115 TSDI

Page 89: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 5. « Name » et « TableName » le nom « Personne » puis l olumns »:

6. C

Cliquer sur « ajouter » et écrit dans la propriété

iquer sur (collectioc n) de la propriété « C

Créé par: O.Zakaria Page 89 sur 115 TSDI

liquer sur « ajouter » et écrit dans la propriété

« Name » et « ColumnName » le nom « Code » et dans la propriété « DataType »choisir « System.Int16 » puis cliquer sur « fermer » :

Page 90: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique On suive la même façon pour ajouter les Columns« nom » et « prénom ». 7. Cliquer sur la propriété « PrimaryKey » puis

hoisir ce la lé primaire été le « code », cliquer sur fermer » :

c la clé primaire, dans cet exercic«

Créé par: O.Zakaria Page 90 sur 115 TSDI

Imports System.Data.SqlClient Public Class Form1 ' Tu as remarqué que cette fois le code est 'très court, c’est ça la puissance de travailler 'avec l’assistant : Sub BtnRemplir_Click (ByVal sender PrivateAs System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click Me.da.Fill(ds, "Personne") Me.DataGrid1.SetDataBinding(ds, "Personne") Sub EndEnd Class

Page 91: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

TP N° 21: Création et initialisation d’un DataSet typé.

 

Objectif : Dans cet exercice vous allez créer et initialiser le Dataset typé.

 Tra ail demandé :v  

1. Créer l’interface ci-dessous :

 

 

 

 

 

 

 

On travaille avec la base de données Client_Produit qui contient les tables :

Client (Code_Cli, Nom_Cli, Pren_Cli) Produit (Code_Pro, Nom_Pro, Prix_Pro, Code_CLi)

2. Ajouter un Dataset typé. 3. Ecrire le code du bouton « Remplir » qui permet de

et le par les produits. tre application.

remplir le listebox par les codes des clientsDatagrid

r vo4. Teste

Créé par: O.Zakaria Page 91 sur 115 TSDI

Page 92: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution: L oes étapes p ur ajouter un cristal report :

1. Cliquer par la touche droite sur le projet puis cliquer sur « ajouter » et choisi « ajouter un nouvel élément » :

2.

Choisir « DataSet » et donner un nom : par exemple « ds » puis cliquer sur ouvrir:

Créé par: O.Zakaria Page 92 sur 115 TSDI

Page 93: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 93 sur 115 TSDI

Apprendre ADO.Net en pratique

3. Cliquer sur « Explorateur de serveur

» :

4. et cliquer sur « tables » :

Ajouter la base de données Client_Produit

Créé par: O.Zakaria Page 93 sur 115 TSDI

Page 94: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

5. glisser les deux tables « Client » et

choisir « Relation » :

« Produit » :

6. Cliquer par la touche droite sur une table puis cliquer sur « ajouter » et

Créé par: O.Zakaria Page 94 sur 115 TSDI

Page 95: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 7. « client » et l’élément enfant « produit »,dans le champ « champs clés » choisir «code_cli» et ans le choisir code_cli » puis cliquer sur « ok » :

crée la relation entre l’élément parent

d champ « champs clés étrangères»«

Créé par: O.Zakaria Page 95 sur 115 TSDI

Page 96: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 96 sur 115 TSDI

Imports System.Data.SqlClient Public Class Form1 ' Le Code Du bouton Remplir : Private Sub BtnRemplir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click 'L’instanciation de notre DataSet : Dim ds1 As New ds Dim daClient As New SqlDataAdapter("select code_cli from client", con) daClient.Fill(ds1.Tables("client")) Dim pos As Integer While pos < ds1.Tables("client").Rows.Count Me.ListBox1.Items.Add(ds1.Tables("client").Rows(pos).Item(0)) pos = pos + 1 End While Dim daProduit As New SqlDataAdapter("select * from produit", con) daProduit.Fill(ds1.Tables("produit")) Me.DataGrid1.DataSource = (ds1.Tables("produit")) End Sub End Class

Page 97: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 97 sur 115 TSDI

n du DataView. TP N° 22: Utilisatio

 

   Objectif :   Dans cet exercice vous allez utiliser l’objet Dataview.

Travail demandé :  1. Créer l’interface ci-dessous :

 

 

 

 

 

 

avec les tables « CategoriesTravailler »s et « Products » de la base de données « Northwind »

2. Ecrire le code qui permet de remplir le combobox au démarrage du formulaire par les « categoryID » de toutes les « Categories ».

3. utiliser l’objet Dataview pour écrire le code qui permet de remplir le Datagrid par toutes les informations de la «Product » choisi par la «categoryID» dans le combobox.

4. Tester votre application.

Page 98: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution : Imports System.Data.SqlClient Pub lic Class Form1Pri Load(ByVal sender As vate Sub Form1_System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Ouvrir la connexion (connexion par assistant) : con.Open() 'Remplir le combobox : Dim cmd As New SqlCommand("select * from categories", con) = cmd.ExecuteReader Dim dr As SqlDataReader Dim ds As New DataSet While dr.Read Me.ComboBox1.Items.Add(dr(0)) End While dr.Close() End Sub Private Sub 'Le code qui permet de remplir le Datagrid : Private Sub ComboBox1_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Dim da As New SqlDataAdapter("select * from products", con) Dim ds As New DataSet da.Fill(ds, "pro") Dim dv As New DataView dv.Table = ds.Tables("pro") tegoryID=" & dv.RowFilter = "ca Me.ComboBox1.Text DataGrid1.DataSource = dv End Sub End Class

Créé par: O.Zakaria Page 98 sur 115 TSDI

Page 99: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 99 sur 115 TSDI

TP N° 23: Utilisation du DataBinding Par code.

 

Objectif :   Dans cet exercice vous allez travailler avec le DataBinding.

Travail demandé :  1. Créer l’interface ci-dessous :

 

 

 

 

 

 

 

Travailler avec la base de données Client_Produit qui

i Contient la table : Client (Code_Cl , Nom_Cli, Pren_Cli)

vec L’assistant.

e des boutons : .

e application.

2. Créer un DataAdapter et un Dataset a3. Utiliser le Databinding pour écrire le code des boutons

vant, Précèdent, Dernier). de déplacements (Premier, Sui 4. Utiliser le Databinding pour écrire le cod

Ajouter, Modifier et Supprimer Nouveau, otr 5. Tester v

Page 100: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution :

Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ( =Client_Produit; server=; integrated "databasesecurity=sspi ") Dim da As SqlDataAdapter Dim ds As New DataSet ByVal sender As Private Sub Form1_Load(System.Object, ByVal e As System.EventArgs) Handles MyBase.Load da = New SqlDataAdapter("select * from client", con) da.Fill(ds, "client")

Me.TxtCode.DataBindings.Add("text", ds.Tables("client"), "code_cli") Me.TxtNom.DataBindings.Add("text", ds.Tables("client"), "nom_cli") Me.TxtPrenom.DataBindings.Add("text", ds.Tables("client"), "pren_cli")

End Sub 'Le Code du bouton nouveau : Private Sub btnNouveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNouveau.Click Me.BindingContext(ds.Tables(0)).AddNew() End Sub

Créé par: O.Zakaria Page 100 sur 115 TSDI

Page 101: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 101 sur 115 TSDI

'Le Code du bouton Ajouter : rivate Sub BtnAjouter_Click(ByVal sender PAs System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click Me.BindingContext(ds.Tables(0)).EndCurrentEdit() da.Update(ds.Tables(0)) MsgBox("bien Ajouter!!", MsgBoxStyle.Information) End Sub 'Le Code du bouton supprimer : Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click ds.Tables(0).Rows(Me.BindingContext(ds.Tables(0)).Position).Delete() da.Update(ds.Tables(0)) MsgBox("bien supprimer!!", MsgBoxStyle.Information) End Sub 'Le Code du bouton Modifier : ByVal Private Sub btnModifier_Click(sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click Me.BindingContext(ds.Tables(0)).EndCurrentEdit() da.Update(ds.Tables(0)) MsgBox("bien modifier!!", MsgBoxStyle.Information) End Sub

Page 102: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 102 sur 115 TSDI

'Le Code du bouton premier : Private Sub BtnPremier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremier.Click Me.BindingContext(ds.Tables("client")).Position = 0 End Sub 'Le Code du bouton dernier : Private Sub btnDernier_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDernier.Click Me.BindingContext(ds.Tables("client")).Position= ds.Tables("client").Rows.Count - 1 End Sub 'Le Code du bouton précident: Private Sub bntPrécédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntPrécédent.Click Me.BindingContext(ds.Tables("client")).Position -= 1 End Sub 'Le Code du bouton suivant : Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuivant.Click Me.BindingContext(ds.Tables("client")).Position += 1 End Sub End Class

Page 103: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 103 sur 115 TSDI

TP N° 24: Utilisation du DataBinding Avec l’assistant.

 

Objectif :  Dans cet exercice vous allez travailler avec l’assistant par le DataBinding.

 Travail demandé :  

1. Créer l’interface ci-dessous :  

 

 

 

 

 

Travailler avec la base de données Client_Produit qui contient latable : Produit (Code_Pro

, Nom_Pro, Prix_Pro, Code_Cli)

2. Créer un DataAdapter et un Dataset avec L’assistant. 3. Utiliser le Databinding pour écrire le code des boutons

lacements (Premier, Suivant, Précèdent, Dernier).

4. Utiliser le Databinding pour écrire le code des boutons : Nouveau, Ajouter, Modifier et Supprimer.

5. Tester votre application.

de dép

Page 104: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Solution : oir le TP N° 20 qui explique comment ajouter un DataAdapter et un

DatOn t on v z produit » :

Clique droite sur la zone de texte « Code t » et cliquer sur « DataBindings »

VaSet avec L’assistant. uppose que notre DataAdapter et DataSet est ajouté, maintenansa attacher les ones de textes aux champs des tables «

Produipuis cliquer sur « Text » et choisir « code_pro » de la table produit.

Créé par: O.Zakaria Page 104 sur 115 TSDI

Clique droite sur la zone de texte « Nom Produit » et cliquer sur « DataBindings » puis cliquer sur « Text » et choisir « Nom_pro » de la table produit.

Page 105: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Clique droite sur la zone de texte « Prix t cliquer sur « DataBindings »

Produit » epuis cliquer sur « Text » et choisir « Nom_pro » de la table produit.

Créé par: O.Zakaria Page 105 sur 115 TSDI

Clique droite sur la zone de texte « Code Client » et cliquer sur « DataBindings » puis cliquer sur « Text » et choisir « Code_Cli » de la table produit.

Page 106: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 106 sur 115 TSDI

Imports System.Data.SqlClient Public Class Form1 Priv m.Object, at Sub Form1_Load(ByVal sender As SysteeByVal e As .Load System.EventArgs) Handles MyBase Me.da.Fill(ds, "Produit") End Sub 'Le Code du bouton nouveau : Private Sub btnNouveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNouveau.Click Me.BindingContext(ds.Tables("Produit")).AddNew() End Sub 'Le Code du bouton ajouter : Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAjouter.Click Me.Bi ndingContext(ds.Tables("Produit")).EndCurrentEdit() da.Update(ds.Tables("Produit")) Msg ion) Box("bien Ajouté!!", MsgBoxStyle.Informat End Sub 'Le Code du bouton Modifier: Private Sub btnModifier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModifier.Click Me.BindingContext(ds.Tables("Produit")).EndCurrentEdit() da.Update(ds.Tables("Produit")) MsgBox("bien Modifier!!", MsgBoxStyle.Information) End Sub 'Le Code du bouton supprimer: Private Sub btnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSupprimer.Click ds.Tables("produit").Rows(BindingContext(ds.Tables("produit")).Position).Delete() da.Update(ds.Tables("produit")) MsgBox("bien supprimer!!", MsgBoxStyle.Information) End Sub

Page 107: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 107 sur 115 TSDI

'Le Code du bouton premier: Private Sub BtnPremier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPremier.Click Me.BindingContext(ds.Tables("produit")).Position = 0 End Sub 'Le Code du bouton dernier : Private Sub btnDernier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDernier.Click Me.BindingContext(ds.Tables("produit")).Position = ds.Tables("Produit").Rows.Count - 1 End Sub 'Le Code du bouton précédent: Private Sub bntPrécédent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntPrécédent.Click Me.BindingContext(ds.Tables("produit")).Position -= 1 End Sub 'Le Code du bouton suivant: Private Sub btnSuivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuivant.Click Me.BindingContext(ds.Tables("produit")).Position += 1 End Sub End Class

Page 108: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Créé par: O.Zakaria Page 108 sur 115 TSDI

TP N° 25 : Exercice complète.

Le schéma relationnel de la base de données est le suivant :

I. Création de la base de données :

a) Créer la base de données (ActeMariage) sous Microsoft SQL Server, les principales caractéristiques des champs doivent être déduites.

b) Mettre en relation les différentes tables du modèle par des contraintes d’intégrité référentielles.

c) Saisir des valeurs pour effectuer des testes.

II. Réalisation des interfaces sous visuel studio.net :

une feuille de démarrage (MDI) sous cette forme :

1. Au lancement de l’application, il présente

Page 109: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

2. Le sou menu Homme du menu fichier permet d’afficher une feuille, comme ci-dessous :

Créé par: O.Zakaria Page 109 sur 115 TSDI

Page 110: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Ecrire le code du chargement de la feuille. Ecrire le code pour les boutons de déplacements (Premier, Suivant, Précèdent,

Dernier). Ecrire le code pour les boutons :

Nouveau : Pour initialiser l’interface. Enregistrer : Ajouter un Homme et vérifier la contrainte de remplissage de

tous les champs et l’unicité de la clé primaire. Modifier : Modifier un Homme et vérifier la contrainte de remplissage de tous

les champs et l’unicité de la clé primaire. Supprimer : La suppression s’effectuera avec confirmation. Annuler : Annule l’opération courante et initialise les données. Fermer : Ferme la feuille. Ok : Chercher un homme par le CIN et remplir les cases par les informations

le concernant.

3. Le sou menu Femme du menu fichier permet d’afficher une feuille, comme ci-dessous :

Ecrire le code du chargement de la feuille. Ecrire le code pour les boutons de déplacements (Premier, Suivant, Précèdent,

Dernier). Ecrire le code pour les boutons : Nouveau, Enregistrer, Modifier, Supprimer,

Annuler, Fermer et Ok.

Créé par: O.Zakaria Page 110 sur 115 TSDI

Page 111: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique 4. Le sou menu Acte_Mariage du menu fichier permet d’afficher une feuille, comme ci- dessous :

Ecrire le code du chargement de la feuille. Ecrire le code qui permette de remplir les deux combobox. Ecrire le code pour les boutons de déplacements (Premier, Suivant, Précèdent,

Dernier). Ecrire le code pour les boutons : Nouveau, Enregistrer, Modifier, Supprimer, Annuler

et Fermer. N B :

Si on ajoute un Nouveau code d’acte de mariage, il s’incrémente automatiquement dans

la case qui lui est réservé a la suite.

La case réserve pour le code d’acte mariage nous permettons seulement la lecture.

Créé par: O.Zakaria Page 111 sur 115 TSDI

Page 112: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

5. Le sou menu Acte_Divorce du menu fichier permet d’afficher une feuille, comme ci-dessous :

ier, Suivant, Précèdent,

N Si on ajoute un Nouveau code d’acte de divorce, il s’incrémente automatiquement

permettons seulement la lecture.

Ecrire le code du chargement de la feuille. Ecrire le code pour les boutons de déplacements (Prem

Dernier). Ecrire le code pour les boutons : Nouveau, Enregistrer, Modifier, Supprimer, Annuler

et Fermer.

B :

dans la case qui lui est réservé a la suite. Quand je choisi un code de mariage j’obtiens automatiquement l’identité des marié concerné dans les cases qui leurs sont réservé. Les cases réserves pour le code d’acte mariage, CIN homme et CIN femme nous

Créé par: O.Zakaria Page 112 sur 115 TSDI

Page 113: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

5. Le sou Menu consultation du menu fichier permet d’afficher une feuille, comme ci-

essous :

d

ent de la feuille. ire le code pour le bouton valider.

Ecrire le code du chargem Ecr

Créé par: O.Zakaria Page 113 sur 115 TSDI

Page 114: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

6. Le menu Etat permet d’afficher une feuille, comme ci-dessous :

Ecrire le code du chargement de la feuille. Ecrire le code pour le bouton valider.

e quitte de l’application s’effectuera par

. Créé un programme d’installation de votre application.

7. Ecrire le code pour le bouton Quitter, lconfirmation.

8

Créé par: O.Zakaria Page 114 sur 115 TSDI

Page 115: VB Ado,net Sadigué, Amine Fed, Bahak

Apprendre ADO.Net en pratique

Mon document est fini j’espéra que j’étais concilié

dans mon travail et je souhaite que vous avez bien

profité.

« Un mot d'encouragement ou un compliment fait

toujours plaisir. Mais un Critique ou une suggestion

serait aussi examinée avec attention. »

Créé par: O.Zakaria Page 115 sur 115 TSDI