• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
121
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Apprendre ADO.Net en pratique Créé par: O.Zakaria Page 2 sur 115 TSDI
  • 2. 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
  • 3. 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
  • 4. 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é.
  • 5. 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
  • 6. 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
  • 7. 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                       
  • 8. 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.      
  • 9. 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             
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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  
  • 14. 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
  • 15. 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              
  • 16. 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
  • 17. 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    
  • 18. 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.      
  • 19. 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  
  • 20. 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.      
  • 21. 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.
  • 22. 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
  • 23. 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.    
  • 24. 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
  • 25. 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
  • 26. 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.
  • 27. 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
  • 28. 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          
  • 29. 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.
  • 30. 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
  • 31. 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 D personne choisi par le code dans le combobox. Tester votre application.
  • 32. 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
  • 33. 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 exe mode 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 trava la table: , Nom, Prénom). 3. Test votre application.
  • 34. 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
  • 35. 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
  • 36. 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 :                              
  • 37. 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
  • 38. 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. 
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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 informations personne dont le code a été saisi dans la zone de texte. Tester votre application.
  • 50. 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. Cliq projet puis cliquer sur « ajo choisi « ajouter un nouvel élément » Créé par: O.Zakaria Page 51 sur 115 TSDI Choisir « Etat Cystal Reports » et donner cliquer sur ouvrir:
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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ésultat final : Créé par: O.Zakaria Page 56 sur 115 TSDI
  • 56. 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
  • 57. 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
  • 58. 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 le serveur. 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
  • 59. 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
  • 60. 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’éta choisir «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
  • 61. 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
  • 62. 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.
  • 63. 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
  • 64. 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
  • 65. 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 par la touche droite sur «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 les st Créé par: O.Zakaria Page 66 sur 115 TSDI
  • 66. 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
  • 67. Apprendre ADO.Net en pratique Impo .SqlClientrts 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 AsPrivate Sub BtnAjouter_Click(ByVal send Sy Handlesstem.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
  • 68. 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
  • 69. 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 connexion base de données : par exemple on choisit la base de données « northwind » 3. Ecrire le code du Bouton « T permet d’afficher son 4. Tester
  • 70. 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é : « 2 d Créé par: O.Zakaria Page 71 sur 115 TSDI
  • 71. 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
  • 72. Apprendre ADO.Net en pratique Créé par: O.Zakaria Page 73 sur 115 TSDI 'Le code : Public Class Form1 Private senderSub Form1_Load(ByVal As 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
  • 73. 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. Ajouter 3. Rattache remplir le listebox par    
  • 74. 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 » avec sistant :  « donn dans le formulaire : Créé par: O.Zakaria Page 75 sur 115 TSDI
  • 75. Apprendre ADO.Net en pratique 3. on donne un nom au « command » à la plac «sqlCommand1» on écrit:par exemple «cmd» pu dans 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 Wi do la su o Créé par: O.Zakaria Page 76 sur 115 TSDI
  • 76. 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 bo ok.     Créé par: O.Zakaria Page 77 sur 115 TSDI
  • 77. 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 :
  • 78. Apprendre ADO.Net en pratique Cliquer sur ajouter et donner au paramètre le s choisir le type « Int » etnom « @code » pui cliquer 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
  • 79. Apprendre ADO.Net en pratique Créé par: O.Zakaria Page 80 sur 115 TSDI Apprendre ADO.Net en pratique ' Le code du bouton Remplir : Private senderSub BtnRemplir_Click(ByVal As 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
  • 80. 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.
  • 81. 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 » av sistant :  Cliquer sur suivant : Créé par: O.Zakaria Page 82 sur 115 TSDI
  • 82. 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 :
  • 83. 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
  • 84. 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
  • 85. 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
  • 86. 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 «DataA on Le l’assistant : ormulaire :   1. Dans « la boite à outil » on choisit « données » puis on glisser « DataSet » dans le f
  • 87. 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
  • 88. 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 » :
  • 89. 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 exerci c « 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 senderPrivate As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click Me.da.Fill(ds, "Personne") Me.DataGrid1.SetDataBinding(ds, "Personne") SubEnd End Class
  • 90. 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 clients Datagrid r vo4. Teste Créé par: O.Zakaria Page 91 sur 115 TSDI
  • 91. 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
  • 92. 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
  • 93. 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
  • 94. 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
  • 95. 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
  • 96. 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.
  • 97. Apprendre ADO.Net en pratique Solution : Imports System.Data.SqlClient Public Class Form1 Pri Load(ByVal sender Asvate 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.ExecuteReaderDim 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
  • 98. 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 iContient 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 a 3. 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 SupprimerNouveau, otr5. Tester v
  • 99. Apprendre ADO.Net en pratique Solution : Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ( =Client_Produit; server=; integrated"database security=sspi ") Dim da As SqlDataAdapter Dim ds As New DataSet ByVal sender AsPrivate 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
  • 100. Apprendre ADO.Net en pratique Créé par: O.Zakaria Page 101 sur 115 TSDI 'Le Code du bouton Ajouter : rivate Sub BtnAjouter_Click(ByVal senderP As 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 : ByValPrivate 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
  • 101. 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
  • 102. 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 la table : 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
  • 103. Apprendre ADO.Net en pratique Solution : oir le TP N° 20 qui explique comment ajouter un DataAdapter et un Dat On t on v z produit » : Clique droite sur la zone de texte « Code t » et cliquer sur « DataBindings » V aSet avec L’assistant. uppose que notre DataAdapter et DataSet est ajouté, maintenans a attacher les ones de textes aux champs des tables « Produi puis 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.
  • 104. Apprendre ADO.Net en pratique Clique droite sur la zone de texte « Prix t cliquer sur « DataBindings »Produit » e puis 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.
  • 105. 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 Systee ByVal e As .LoadSystem.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.BindingContext(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("produi t")).Position).Delete() da.Update(ds.Tables("produit")) MsgBox("bien supprimer!!", MsgBoxStyle.Information) End Sub
  • 106. 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
  • 107. 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
  • 108. 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
  • 109. 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
  • 110. 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
  • 111. 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
  • 112. 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
  • 113. 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, l confirmation. 8 Créé par: O.Zakaria Page 114 sur 115 TSDI
  • 114. 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