• Aucun résultat trouvé

[PDF] Apprendre ADO.Net par la pratique cours et exercices complet | Cours visual basic

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Apprendre ADO.Net par la pratique cours et exercices complet | Cours visual basic"

Copied!
115
0
0

Texte intégral

(1)

(2) Apprendre ADO.Net en pratique. Créé par: O.Zakaria. Page 2 sur 115. TSDI.

(3) Apprendre ADO.Net en pratique. # le. Avant d’aborder la rédaction de ce tutorial, j’ai 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.

(4) 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. 9 Avec ExecuteNonQuery de l'objet Command on peut manipuler directement la BD (UPDATE, INSERT, DELETE, CREATE, DROP..). 9 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.

(5) Apprendre ADO.Net en pratique. 9 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é.. Créé par: O.Zakaria. Page 5 sur 115. TSDI.

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

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

(8) Apprendre ADO.Net en pratique. 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     .                   Créé par: O.Zakaria. Page 8 sur 115. TSDI.

(9) Apprendre ADO.Net en pratique  . 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.       Créé par: O.Zakaria. Page 9 sur 115. TSDI.

(10) Apprendre ADO.Net en pratique  . 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     .         Créé par: O.Zakaria. Page 10 sur 115. TSDI.

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

(12) Apprendre ADO.Net en pratique. 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() MsgBox("Bien ajouter!!",MsgBoxStyle.Information). End Sub End Class. Créé par: O.Zakaria. Page 12 sur 115. TSDI.

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

(14) Apprendre ADO.Net en pratique. 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   Créé par: O.Zakaria. Page 14 sur 115. TSDI.

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

(16) Apprendre ADO.Net en pratique  . 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               Créé par: O.Zakaria. Page 16 sur 115. TSDI.

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

(18) Apprendre ADO.Net en pratique. 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     Créé par: O.Zakaria. Page 18 sur 115. TSDI.

(19) Apprendre ADO.Net en pratique  . 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.       Créé par: O.Zakaria. Page 19 sur 115. TSDI.

(20) Apprendre ADO.Net en pratique. 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.   Créé par: O.Zakaria. Page 20 sur 115. TSDI.

(21) Apprendre ADO.Net en pratique  . 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.  .     Créé par: O.Zakaria. Page 21 sur 115. TSDI.

(22) Apprendre ADO.Net en pratique. 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.. Créé par: O.Zakaria. Page 22 sur 115. TSDI.

(23) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 23 sur 115. TSDI.

(24) Apprendre ADO.Net en pratique. 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.  .   Créé par: O.Zakaria. Page 24 sur 115. TSDI.

(25) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 25 sur 115. TSDI.

(26) Apprendre ADO.Net en pratique 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. Créé par: O.Zakaria. Page 26 sur 115. TSDI.

(27) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 27 sur 115. TSDI.

(28) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 28 sur 115. TSDI.

(29) Apprendre ADO.Net en pratique. '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           Créé par: O.Zakaria. Page 29 sur 115. TSDI.

(30) Apprendre ADO.Net en pratique  . 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 :.   2. Ecrire le code du Bouton « Remplir » qui permet de remplir le combobox par les codes des personnes et la listebox par les prénoms. 3. Tester votre application.  . Créé par: O.Zakaria. Page 30 sur 115. TSDI.

(31) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 31 sur 115. TSDI.

(32) Apprendre ADO.Net en pratique. 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. 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 Datagrid par toutes les informations de la personne choisi par le code dans le combobox. 4. Tester votre application.     Créé par: O.Zakaria. Page 32 sur 115. TSDI.

(33) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 33 sur 115. TSDI.

(34) Apprendre ADO.Net en pratique  . TP N° 13 : Premier, dernier, précédent et Suivant en Mode déconnecté.   Objectif :  Dans cet exercice vous allez  créer les boutons de déplacements en  mode dé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 travail avec la table: Personne (Code, Nom, Prénom). 3. Test votre application.. Créé par: O.Zakaria. Page 34 sur 115. TSDI.

(35) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 35 sur 115. TSDI.

(36) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 36 sur 115. TSDI.

(37) Apprendre ADO.Net en pratique. 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 :                               Créé par: O.Zakaria. Page 37 sur 115. TSDI.

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

(39) Apprendre ADO.Net en pratique  . 3. Le sou menu produit 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.    4. Tester votre application. . Créé par: O.Zakaria. Page 39 sur 115. TSDI.

(40) Apprendre ADO.Net en pratique. 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. Créé par: O.Zakaria. Page 40 sur 115. TSDI.

(41) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 41 sur 115. TSDI.

(42) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 42 sur 115. TSDI.

(43) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 43 sur 115. TSDI.

(44) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 44 sur 115. TSDI.

(45) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 45 sur 115. TSDI.

(46) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 46 sur 115. TSDI.

(47) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 47 sur 115. TSDI.

(48) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 48 sur 115. TSDI.

(49) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 49 sur 115. TSDI.

(50) Apprendre ADO.Net en pratique. 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  avec le Dataset.    Travail demandé : . 1. Créer l’interface ci-dessous :.  . 2. Ecrire le code du Bouton « afficher » qui permet de remplir le CrystalReportViewer par les informations de la personne dont le code a été saisi dans la zone de texte. 3. Tester votre application.     Créé par: O.Zakaria. Page 50 sur 115. TSDI.

(51) Apprendre ADO.Net en pratique. Solution:  Les étapes pour 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 « Etat Cystal Reports » et donner un nom : par exemple « Etat1 » puis cliquer sur ouvrir:. Créé par: O.Zakaria. Page 51 sur 115. TSDI.

(52) Apprendre ADO.Net en pratique. 3.. Cliquer sur plus tard :. 4.. ne rien changer et cliquer sur ok :. Créé par: O.Zakaria. Page 52 sur 115. TSDI.

(53) Apprendre ADO.Net en pratique. 5.. double clique sur « OLD DB(ADO) » :. 6.. Choisir « Microsoft OLE DB Provider for SQL Server » puis cliquer sur suivant :. Créé par: O.Zakaria. Page 53 sur 115. TSDI.

(54) Apprendre ADO.Net en pratique. 7. 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 :. 8. Cliquer sur terminer :. Créé par: O.Zakaria. Page 54 sur 115. TSDI.

(55) Apprendre ADO.Net en pratique. 9. Insérer les tables puis cliquer sur suivant:. 10. Insérer les colonnes puis cliquer sur suivant:. Créé par: O.Zakaria. Page 55 sur 115. TSDI.

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

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

(58) 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.    Travail demandé : . 1. Créer l’interface ci-dessous :. Travailler avec la table « Orders » de la base de données « Northwind »    2. Ecrire le code du 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. Créé par: O.Zakaria. Page 58 sur 115. TSDI.

(59) 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 touche droite sur « champ de paramètre » et choisir « Nouveau » : .   Créé par: O.Zakaria. Page 59 sur 115. TSDI.

(60) Apprendre ADO.Net en pratique 3. donner un nom au paramètre, par exemple «p1», et choisir le «Type de valeur» ici le paramètre est un nombre, puis cliquer sur « ok » :                             4. Remarquez-vous que le paramètre est ajouté :                             Créé par: O.Zakaria. Page 60 sur 115. TSDI.

(61) Apprendre ADO.Net en pratique   5. Cliquer par la touche droite sur l’état et choisir «Etat» puis «Modifier la formule de section »et cliquer sur «Enregistrements»: .   6. Attacher le paramètre avec le champ «OrderId» Puis cliquer sur pour sauvegarder.  . Créé par: O.Zakaria. Page 61 sur 115. TSDI.

(62) 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 pour le bouton afficher:. Private Sub Afficher_Click(ByVal sender 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.

(63) Apprendre ADO.Net en pratique  . 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. Créé par: O.Zakaria. Page 63 sur 115. TSDI.

(64) Apprendre ADO.Net en pratique. Solution:  Les étapes pour créer une procédure stockée :.   1. chercher dans la barre de menu « Affichage » et choisir « Explorateur de serveur » :. Créé par: O.Zakaria. Page 64 sur 115. TSDI.

(65) Apprendre ADO.Net en pratique 2. dans « Explorateur de serveur » cliquer sur « Connexion de données » et choisir « ajouter une connexion » :. 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.

(66) 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 on clique sur «Nouvelle procédure stockées». 5. voila le résultat de tout ce travail. Maintenant on peut écrire toutes les procédures stockées qu’on veut :. Créé par: O.Zakaria. Page 66 sur 115. TSDI.

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

(68) Apprendre ADO.Net en pratique. Imports System.Data.SqlClient Public Class Form1 Dim con As New SqlConnection ("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 : Private Sub BtnAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 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.

(69) Apprendre ADO.Net en pratique. '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. Créé par: O.Zakaria. Page 69 sur 115. TSDI.

(70) Apprendre ADO.Net en pratique. 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 :                  .   2. Ajouter une connexion avec l’assistant et choisir une base de données : par exemple on choisit la base de données « northwind » 3. Ecrire le code du Bouton « Tester la Connection » qui permet d’afficher son statut dans un message box. 4. Tester votre application.  . Créé par: O.Zakaria. Page 70 sur 115. TSDI.

(71) 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 :. 2. la connexion est ajoutée, on clique par la touche droite puis on choisit propriété :. Créé par: O.Zakaria. Page 71 sur 115. TSDI.

(72) Apprendre ADO.Net en pratique 3. on donne un nom a la connexion a la place de «sqlConnexion1» on écrit:par exemple «con» puis dans la propriété «ConnectionString» on 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 on clique sur ok:. Créé par: O.Zakaria. Page 72 sur 115. TSDI.

(73) Apprendre ADO.Net en pratique. 'Le code : Public Class Form1 Private Sub Form1_Load(ByVal sender 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. Créé par: O.Zakaria. Page 73 sur 115. TSDI.

(74) Apprendre ADO.Net en pratique. 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.   . 1. Créer l’interface ci-dessous :                    . 2. Ajouter un « command » avec l’assistant. 3. Rattacher « 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 remplir le listebox par le nom et le prénom de la personne choisi par le code dans le combobox. 6. Tester votre application.     Créé par: O.Zakaria. Page 74 sur 115. TSDI.

(75) Apprendre ADO.Net en pratique. Solution :  Les étapes pour créer et configurer un « command » avec  l’assistant :    1. Dans « la boite à outil » on choisit « données » puis on glisser « SqlCommand » dans le formulaire :. 2. le « command » est ajouté, on clique par la touche droite puis on choisit propriété :. Créé par: O.Zakaria. Page 75 sur 115. TSDI.

(76) Apprendre ADO.Net en pratique. 3. on donne un nom au « command » à la place de «sqlCommand1» on écrit:par exemple «cmd» puis dans la propriété «Connection» on choisit « Nouveau » :. 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 « Personnes » et on clique sur ok :. Créé par: O.Zakaria. Page 76 sur 115. TSDI.

(77) Apprendre ADO.Net en pratique 5. Dans les propriétés de « command » on cliquer sur la propriété « commandText » pour choisir les tables, on clique sur « ajouter » :. 6. Cocher dans la table « personne » le check box « Toutes les colonnes » puis cliquer sur ok..    . Créé par: O.Zakaria. Page 77 sur 115. TSDI.

(78) Apprendre ADO.Net en pratique 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 :. Créé par: O.Zakaria. Page 78 sur 115. TSDI.

(79) Apprendre ADO.Net en pratique Cliquer sur ajouter et donner au paramètre le nom « @code » puis choisir le type « Int » et 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.

(80) Apprendre ADO.Net en pratique. ' Le code du bouton Remplir : Private Sub BtnRemplir_Click(ByVal sender 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.

(81) Apprendre ADO.Net en pratique. TP N°20: Création et initialisation d’un DataAdapter et DataSet avec l’assistant.   Objectif :  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.. Créé par: O.Zakaria. Page 81 sur 115. TSDI.

(82) Apprendre ADO.Net en pratique. Solution :  Les étapes pour créer et configurer un «SqlDataAdapter » avec  l’assistant :  1. Dans « la boite à outil » on choisit « données » puis on glisser « SqlDataAdapter » dans le formulaire :. 2. Cliquer sur suivant :. Créé par: O.Zakaria. Page 82 sur 115. TSDI.

(83) Apprendre ADO.Net en pratique 3. on choisit la base de données « Personnes » et on clique sur suivant :. 4. cliquer sur suivant :. Créé par: O.Zakaria. Page 83 sur 115. TSDI.

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

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

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

(87) Apprendre ADO.Net en pratique 10. on donne un nom au « DataAdapter », à la place de «SqlDataAdapter1 » on écrit: par exemple «da» :. Maintenant on termine l’ajoute du «DataAdapter» on passe a ajouté le DataSet : Les étapes pour créer et configurer un « Dataset» avec  l’assistant :   1. Dans « la boite à outil » on choisit « données » puis on glisser « DataSet » dans le formulaire :. Créé par: O.Zakaria. Page 87 sur 115. TSDI.

(88) Apprendre ADO.Net en pratique 2. Cocher « Groupe de données non typé » et cliquer sur ok :. 3. Le « DataSet » est ajouté, cliquer par la touche droite et choisir « propriétés » :. 4. donner un nom au « DataSet », à la place de «Dataset1» écrire: par exemple «ds» et cliquer sur (collection) de la propriété « tables »:. Créé par: O.Zakaria. Page 88 sur 115. TSDI.

(89) Apprendre ADO.Net en pratique 5. Cliquer sur « ajouter » et écrit dans la propriété « Name » et « TableName » le nom « Personne » puis cliquer sur (collection) de la propriété « Columns »:. 6. Cliquer 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 » :. Créé par: O.Zakaria. Page 89 sur 115. TSDI.

(90) 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 choisir la clé primaire, dans cet exercice la clé primaire été le « code », cliquer sur « fermer » :. 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 : Private Sub BtnRemplir_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRemplir.Click Me.da.Fill(ds, "Personne") Me.DataGrid1.SetDataBinding(ds, "Personne") End Sub End Class. Créé par: O.Zakaria. Page 90 sur 115. TSDI.

(91) 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é.   Travail demandé :  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 remplir le listebox par les codes des clients et le Datagrid par les produits. 4. Tester votre application.. Créé par: O.Zakaria. Page 91 sur 115. TSDI.

(92) Apprendre ADO.Net en pratique. Solution:  Les étapes pour 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.

(93) Apprendre ADO.Net en pratique. 3. Cliquer sur « Explorateur de serveur » :. 4. Ajouter la base de données Client_Produit et cliquer sur « tables » :. Créé par: O.Zakaria. Page 93 sur 115. TSDI.

(94) Apprendre ADO.Net en pratique 5. glisser les deux tables « Client » et « Produit » :. 6. Cliquer par la touche droite sur une table puis cliquer sur « ajouter » et choisir « Relation » :. Créé par: O.Zakaria. Page 94 sur 115. TSDI.

Références

Documents relatifs

Nous pensons que si Mol acclàrne tant Mandela, c'est parce qu'il « a dit que le passé était le passé, et que tout le monde devait regarder plutôt l'avenir et se

Location being a typical example of context information, we manipulate it using the COSMOS framework that we develop for the management of context data and their associated

Since the proposed optical circuits use a laser amplifier as the nonlinear optical element, they may potentially perform additional functions, such as: wavelength

Comme aucune différence significative n’a été détectée entre ces deux styles, on peut supposer qu’indépendamment du lien que les Arméniens nouent avec la société

This research also study the various threat source whether its external sources of threat, or internal, and thus raises the strategic and legal question, what is the role

16 shows, as the overlap length in the presented 1D-beam model increases, the maximal adhesive shear stress of the third adhesive layer increases above

Les niveaux proto-aurignaciens et aurignaciens qui ont fait l’objet des fouilles sont associés aux dépôts de ruissellement et aux éboulis de la partie supérieure du remplissage.

Si des paroles ont été mises par écrit, c’est dans la perspective d’être postérieurement (re)lues. Dans la complexité des études épigraphiques, cette évidence est