Ado-net PDF

Title Ado-net
Author Youssef El Ghandour
Course INFORMATIQUE 
Institution Université de Lille
Pages 38
File Size 1.8 MB
File Type PDF
Total Downloads 114
Total Views 200

Summary

Download Ado-net PDF


Description

Accès aux données : ADO.NET Objectif Maîtriser l’accès aux bases de données, en utilisant les objets ADO.net

Mode d’emploi Pour chacun des thèmes abordés, ce support de formation :  présente les points essentiels  renvoie à des supports de cours, des livres ou à la documentation en ligne du



constructeur, par le symbole :  

propose des exercices pratiques par le symbole :



Autres symboles utilisés :



Point important qui mérite d’être souligné



A éviter à tout prix !



Manipulation à réaliser avec un utilitaire graphique (qui devrait normalement simplifier le travail !) Approfondissement : travail de documentation ou exercice supplémentaire, à faire individuellement (non intégré dans le temps de formation moyen)



Lectures conseillées -

Manuel de référence Microsoft ADO. NET, de David Sceppa

-

La documentation en ligne de VB .NET (très détaillée, et en français). Nous indiquerons à chaque chapitre les recherches à effectuer dans l’index.

Outils de développement Visual Studio .net Microsoft SQL server

Sommaire 1

PRESENTATION GENERALE D’ADO .NET........................................................6

1.1

Quelques mots sur l’architecture .NET de Microsoft............................................................................6

1.2

Le modèle objet d’ADO .NET.................................................................................................................7

1.3

Les objets du Fournisseur de données....................................................................................................8

1.4

Les objets du DataSet...............................................................................................................................8

2 2.1

L’ACCES AUX DONNÉES EN MODE CONNECTÉ.............................................9 La connexion ado .net...............................................................................................................................9

2.1.1 2.1.2 2.1.3 2.1.4 2.2

Créer une connexion par code............................................................................9 Quelques propriétés et méthodes de l’objet SqlConnection.............................10 Créer et configurer une connexion avec l’assistant..........................................10 Accéder aux données, par l’explorateur de serveurs........................................11

La commande ado .net...........................................................................................................................12

2.2.1 Création et initialisation d’une commande par code.......................................12 2.2.2 Quelques propriétés et méthodes de l’objet Command....................................13 2.2.3 Requêtes de mise à jour....................................................................................13 2.2.4 Requêtes paramétrées.......................................................................................15 2.2.4.1 Utilisation des commandes paramétrées, par code...............................................15 2.2.4.2 Quelques propriétés et méthodes des paramètres..................................................16 2.2.4.3 Création d’une commande paramétrée, avec l’assistant.....................................16 2.2.5 Requête de type SELECT..................................................................................17 2.2.5.1 Exécution d’une commande par ExecuteScalar().................................................17 2.2.5.2 Exécution d’une commande par ExecuteReader()................................................18 2.2.5.3 Quelques propriétés et méthodes de l’objet DataReader.................................... 19 2.3

Les transactions......................................................................................................................................21

2.3.1 2.3.2 2.4

L’utilisation des procédures stockées....................................................................................................23

2.4.1 2.4.2 2.4.3 3 3.1

Appel de la procédure stockée..........................................................................23 Récupération des résultats de la procédure stockée.........................................23 Procédure stockée et gestion des transactions..................................................24

L’ACCES AUX DONNÉES EN MODE DÉCONNECTÉ......................................25 Le DataSet...............................................................................................................................................25

3.1.1 3.2

La gestion des transactions...............................................................................21 Quelques propriétés et méthodes de l’objet Transaction..................................22

Quelques propriétés et méthodes des objets DataSet et DataTable..................26

Le DataAdapter......................................................................................................................................26

3.2.1

Quelques propriétés et méthodes de l’objet DataAdapter................................27

3.3

Utilisation du DataSet et du DataAdapter par code...........................................................................28

3.4

Utilisation du DataSet à l’aide de l’assistant.......................................................................................30

3.5

les controles liés.......................................................................................................................................32

3.5.1 3.5.2

Le DataBinding.................................................................................................32 Les DataGrids...................................................................................................33

3.5.3

Les mises a jour via les datasets...........................................................................................................37

3.6

4

Les ComboBox et les ListBox............................................................................35

LES REPORTS...................................................................................................39

4.1

Création d’un Report.............................................................................................................................39

4.2

Exécution du report................................................................................................................................40

Presentation generale d’ADO .NET Dans la plupart des applications informatiques actuelles, il est indispensable d’accéder en lecture ou en mise à jour à des bases de données, locales ou distantes. Ce document montre comment utiliser Visual Studio .NET pour accéder aux données et pour les présenter à l’utilisateur. 1.1

Quelques mots sur l’architecture .NET de Microsoft

Visual Studio .NET est une plate-forme de développement d’applications graphiques, multilangages (Visual Basic .NET, C# etc..). Tous les exemples de ce document sont écrits en VB .Net mais peuvent facilement être transposés dans n’importe quel langage de la plateforme. Visual Studio .NET possède un modèle objet appelé ADO .NET (ActiveX Data Object .NET), qui permet de se connecter à de nombreuses bases de données relationnelles. Le même modèle est utilisable dans des applications client-serveur classiques écrites en VB .NET et dans des applications Web basées sur ASP .NET (Active Server Page .NET).

WEB (ASP.NET)

Client (VB .NET )

Bibliothèque de classes communes (Framework .NET) IHM Données

ADO.NET

Common Language Runtime Système d’exploitation ADO .NET fait partie d’une bibliothèque de classes (le Framework) qui peut fonctionner sur plusieurs architectures : PC de bureau, Téléphones portables, Pocket PC. Toutes les classes du Framework s’appuient sur une couche logicielle, la CLR (Common Language Runtime) qui les interface avec les différents systèmes d’exploitation. La CLR est l’équivalent dans le monde Microsoft, de la machine virtuelle Java.

1.2

Le modèle objet d’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.

ADO.NET distingue : -

La communication avec la base de données, qui s’effectue par un Fournisseur de données (Data Provider). Il existe des fournisseurs génériques (préfixes OleDb, Odbc) qui sont reconnus par la plupart des bases de données, et quelques fournisseurs spécialisés pour un SGBD donné (préfixes sql pour SqlServer, oracle pour Oracle). Dans ce document, nous prendrons toujours comme exemple le fournisseur d’accès pour SqlServer.

-

La manipulation locale des données, que l’on peut recopier dans un DataSet

1.3

Les objets du Fournisseur de données

-

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. En utilisant l’objet Connection , votre programme effectue la même opération vis-à-vis du serveur que la phase de connexion de l’utilisateur dans « L’Analyseur de requêtes ».

-

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. L’objet Command contient une collection Parameters qui permet de passer des paramètres en entrée à la requête avant son exécution sur le serveur, et de récupérer des paramètres de sortie après exécution. A noter que l’objet Command permet également d’exécuter des procédures stockées sur le serveur, et de récupérer leur valeur de retour.

-

Pour les requêtes qui renvoient des données (SELECT), on peut récupérer directement ces données en mode connecté grâce au DataReader : cet objet simple permet de lire séquentiellement les lignes sélectionnées par le SELECT, sans pouvoir les modifier ou revenir en arrière.

-

L’objet DataAdapter est le support du mode « déconnecté ». Il est plus élaboré que le DataReader et contient quatre commandes, 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.

1.4

Les objets du DataSet

-

Le DataSet stocke une copie des données en mode déconnecté, indépendamment de toute base de données : on peut le remplir localement avec des tableaux, des collections. Il peut être utilisé avec plusieurs bases de données, ou des fichiers XML.

-

Le DataSet constitue à lui seul une petite base de données relationnelles en mémoire. Il contient une ou plusieurs tables (collection d'un ou plusieurs objets DataTable) constituées de lignes (DataRowCollection) et de colonnes (DataColumnCollection), et éventuellement des définitions de contraintes d’intégrité (clés primaires et clés étrangères).

2 L’ACCES AUX DONNÉES EN MODE CONNECTÉ 2.1

La connexion ado .net

2.1.1 Créer une connexion par code a) Importer dans votre programme l’espace de noms System.Data.SqlClient qui contient le fournisseur de données pour SqlServer, ou System.Data.OleDb pour le fournisseur générique OleDb, ou System.Data.Odbc pour le fournisseur générique Odbc : Imports System.Data Imports System.Data.SqlClient

b) Créer une instance de la classe SqlConnection, en passant une chaîne de connexion à son constructeur : Dim co as SqlConnection co = New SqlConnection("server=SERVEUR-CR;Initial Catalog=BanqueDémo; User Id=stage;Password=stage;")

Syntaxe de la chaîne de connexion : -

server : nom du serveur Sql Server Initial Catalog : nom de la base de données User Id : nom de l’utilisateur déclaré dans Sql Server Password : mot de passe de l’utilisateur

On peut aussi créer la connexion avec le constructeur non paramétré, et renseigner sa propriété ConnexionString Dim co SqlConnection co = New SqlConnection co.ConnectionString = "server=SERVEUR-CR;Initial Catalog=BanqueDémo; User Id=stage;Password=stage;"

c) Ouvrir la connexion co.Open()

Jusqu’ici, VB .NET a seulement préparé un objet en mémoire, sans effectuer aucune vérification. C’est à l’ouverture qu’il recherche le serveur sur le réseau, et l’interroge pour vérifier le nom de l’utilisateur et son mot de passe. Si la chaîne de connexion est erronée, le fournisseur de données génère une exception de la classe SqlException : par exemple, « SQL Server n’existe pas ou l’accès est refusé ».



Documentation .Net (index) : Connection (objet) / Connexion à une source de données à l’aide de ADO .NET

2.1.2 Quelques propriétés et méthodes de l’objet SqlConnection Méthodes publiques Méthode Open Close BeginTransaction CreateCommand ChangeDatabase

Description Ouvre la connexion vers une base de données avec les paramètres spécifiés dans la propriété ConnectionString. Ferme la connexion. Lance une nouvelle transaction, en créant un objet de la classe SqlTransaction qui fournit les méthodes commit et rollback Crée et retourne un objet SqlCommand associé à SqlConnection Modifie la base de données en cours d'un SqlConnection ouvert. Propriétés publiques

Propriété ConnectionString State Database CommandTimeout WorkstationId



Description pour définir la connexion à une source de données : serveur, base de données, utilisateur…. Obtient l'état actuel de la connexion. Obtient le nom de la base de données en cours ou de la base de données à utiliser une fois la connexion ouverte Nombre de secondes d'attente avant de renvoyer une erreur, suite à une tentative d'exécution d'une commande Chaîne qui identifie le client de la base de données. S'il n'est pas spécifié, nom de l'ordinateur client.

Documentation .Net (index) : SqlConnection

2.1.3 Créer et configurer une connexion avec l’assistant

Dans la boîte à outils, choisir un objet connexion : par exemple SqlConnection pour une connexion vers SqlServer. Dans la propriété ConnectionString, choisir Nouvelle connexion… et configurer la connexion grâc rveur, nom de l’utilisateur, mo Toujours Tester

2.1.4 Utiliser la connexion pour accéder aux données, par l’explorateur de serveurs Pour travailler en client-serveur, nous avons besoin de visualiser les tables et leur contenu, indépendamment du programme en cours de développement



Ceci peut se faire par n’importe quel client : Analyseur de requêtes , Enterprise Manager mais aussi directement dans Visual Studio .NET, par l’explorateur de serveurs. Cette méthode permet de tester la nouvelle connexion, et de vérifier les droits de l’utilisateur sur les tables.

2.2

La commande ado .net

2.2.1 Création et initialisation d’une commande par code -

Selon le fournisseur de données choisi, on utilisera la classe OleDb.OleDbCommand ou SqlClient.SqlCommand.

-

Une commande doit toujours être reliée à une connexion, soit lors de son instanciation, soit en affectant sa propriété Connection. Il faut bien sûr ouvrir cette connexion, avant d’exécuter la commande.

-

Il existe trois types de commandes, qui permettent soit d’exécuter une procédure stockée, soit de récupérer le contenu d’une table entière, soit d’exécuter une requête SQL. Le type d’une commande est fixé par la propriété CommandType : procédure stockée -> StoredProcedure table entière -> TableDirect requête (par défaut) -> Text

-

L’énoncé de la commande – nom de procédure, de table ou chaîne de requête selon le cas - est renseigné par sa propriété CommandText - ou encore lors de son instanciation lorsqu'il s'agit d'une requête.

Dim commande As SqlCommand ' création d'une nouvelle commande commande = New SqlCommand ' on rattache la nouvelle commande à la connexion en cours ' (voir création et ouverture de la connexion dans l’extrait précédent) commande.Connection = co ' type de commande : ici une requête SQL commande.CommandType = CommandType.Text ' texte de la requête SQL commande.CommandText = "INSERT Compte (Nom, Prénom, Solde) VALUES ('Lécu', 'Régis', 10000)"

-

Dans cet exemple, la commande est figée : elle insère dans la base un utilisateur connu à l’avance.

-

On peut généraliser simplement cette méthode en construisant dynamiquement le texte de la requête SQL, par des concaténations de String :

commande.CommandText = "INSERT Compte (Nom, Prénom, Solde) " + "VALUES ('" + txtNom.Text + "','" + txtPrenom.Text + "'," + txtSolde.Text + ")"



Documentation .Net (index) : SqlCommand

2.2.2 Quelques propriétés et méthodes de l’objet Command Méthodes publiques Méthode CreateParameter ExecuteNonQuery

Description Crée un nouvel objet Paramètre. Exécute la commande et renvoie le nombre de lignes affectées dans

le cas de INSERT, UPDATE et DELETE, et renvoie -1 dans le cas de SELECT Exécute la commande et crée un objet DataReader Exécute la commande et récupère un résultat unique sans créer de jeu de données. Permet de compiler la requête avant de l’exécuter

ExecuteReader ExecuteScalar Prepare

Propriétés publiques Propriété CommandText CommandTimeOut CommandeType

Connection Transaction Parameters

Description Définit le texte de la requête SQL, le nom de la table, ou le nom de la procédure stockée Définit le temps avant la levée d’une exception, si la commande n’aboutit pas Type de la commande. Valeurs possibles : Text : Requête SQL StoredProc : Procédure stockée TableDirect :Table (cette valeur n’existe que pour OleDbCommand) Renvoie ou définit la connexion sur laquelle la commande est définie Renvoie ou définit la transaction à laquelle appartient la commande Renvoie la collection des objets Parameters d’une commande

2.2.3 Requêtes de mise à jour -

Cette méthode de l’objet commande permet d’exécuter des requêtes SQL de type UPDATE, INSERT ou DELETE qui ne renvoient pas de lignes au poste client.

-

La valeur de retour donne le nombre de lignes affectées par la requête.

-

Il faut penser à gérer les exceptions renvoyées par le serveur : dans cet exemple, on affiche le message de l’exception (ex.Message).

' voir création de la commande dans l’extrait précédent Try ' on soumet la commande au serveur, sans interrogation. ' La méthode retourne le nombre de lignes affectées Dim nblignes As Integer nblignes = commande.ExecuteNonQuery() Catch ex As Exception MsgBox("Erreur insertion : " + ex.Message, MsgBoxStyle.Critical, Me.Text) End Try

 EXERCICE 1

Nous allons, pour découvrir ADO.net,...


Similar Free PDFs