0% ont trouvé ce document utile (0 vote)
4 vues171 pages

Cours C#: A. Madani Abdellah - Madani@

Le document présente un cours sur le développement d'applications avec C# et la plateforme .NET, abordant des concepts tels que la compilation, l'interprétation, et le Common Language Runtime (CLR). Il décrit également les types de données en C#, la programmation orientée objet, et les méthodes de conversion de types. Enfin, le cours inclut des exemples pratiques et des explications sur la bibliothèque de classes .NET.

Transféré par

simoharit03
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues171 pages

Cours C#: A. Madani Abdellah - Madani@

Le document présente un cours sur le développement d'applications avec C# et la plateforme .NET, abordant des concepts tels que la compilation, l'interprétation, et le Common Language Runtime (CLR). Il décrit également les types de données en C#, la programmation orientée objet, et les méthodes de conversion de types. Enfin, le cours inclut des exemples pratiques et des explications sur la bibliothèque de classes .NET.

Transféré par

simoharit03
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours C#

A. MADANI
abdellah_madani@[Link]

Cours .NET avec C# 1


Plan

 Introduction à .NET
 C# : Programmation de base
 C# : Programmation Orientée Objet
 C# : Tableaux, Chaînes de caractères et les
collections
 C# : Applications Windows
 C# : Architecture [Link]

Cours .NET avec C# 2


Introduction à .NET

Cours .NET avec C# 3


Compilation VS Interprétation
- Compilation -
 Avantages
 Rapidité
 Inconvénient
 Manque de portabilité
 Rigidité

Cours .NET avec C# 4


Compilation VS Interprétation
- Interprétation -
 Avantages
 Portabilité
 Souplesse
 Inconvénient
 Lenteur

Cours .NET avec C# 5


Compilation VS Interprétation
- byte code -
 Avantages
 Portabilité
 Souplesse
 Inconvénient
 lenteur

Cours .NET avec C# 6


Introduction

 .NET :
 Plateforme de développement d’application
 Sortie en Juin 2000
 But :
 Accélérer le processus de développement d’applications
 Distribuer sur Internet les applications produites
 Composée de deux composants principaux :
 Common Language Runtime (CLR)
 Bibliothèque .NET Framework

Cours .NET avec C# 7


Common Language Runtime

 Semblable à la machine virtuelle de Java


 Dans .NET :
 Le programme compilé ne peut être exécuté
directement sur une machine
 Le programme est compilé en un code
intermédiaire, MicroSoft Intermediate Language
(MSIL ou IL)
 Pour exécuter le code IL, on a besoin du CLR

Cours .NET avec C# 8


Common Language Runtime

Avantages :
 Portabilité : le code IL peut s’exécuter sur
n’importe qu’elle machine disposant du CLR
 Prise en charge de plusieurs langages : le CLR
supporte plusieurs langages, VB, C#, APL,
Cobol, Eiffel, Perl, Smalltalk, …
 Programmation interlangages : une classe écrite
dans un langage peut être utilisée par d’autres
langages

Cours .NET avec C# 9


Bibliothèque de classes

 Vaste collection de classes permettant


d’accélérer le développement d’applications
 Les classes ayant les mêmes fonctionnalités
sont regroupées en espaces de noms
(namespaces)
 Une classe ne peut dériver que d’une seule
classe (pas d’héritage multiple)
 Toutes les classes ont un parent commun (super
classe) : la classe ‘Object’

Cours .NET avec C# 10


Bibliothèque de classes

Comporte plusieurs
couches :
 Les unes abstraites

 Les autres exécutables

Cours .NET avec C# 11


La première couche

 Common Langage Specification (CLS)


 Contient les règles auxquelles doivent se
conformer tous les langages .NET
 Permet l’interopérabilité entre les langages
.NET

Cours .NET avec C# 12


La deuxième couche

 Ensemble de composants graphiques


disponibles dans Visual Studio .NET
 Permettent de construire des IHM orientées
 Web (services Web)
 Applications classiques avec IHM.

Cours .NET avec C# 13


La troisième couche

 Constituée d'une vaste librairie de plusieurs


centaines de classes
 Ces classes sont accessibles à tous les
langages de .NET
 Cette librairie a la même fonction que la
bibliothèque des classes de Java.

Cours .NET avec C# 14


La troisième couche

 La librairie de classe de
.NET Framework est
organisée en nom
d'espace hiérarchisés
 Exemple ci-dessous de
quelques espaces de
nom de la hiérarchie
System :

Cours .NET avec C# 15


La troisième couche

 Un nom complet de classe comporte le


"chemin" hiérarchique de son espace de nom
et se termine par le nom de la classe
 Par exemple :
 La classe DataSet qui se trouve dans l'espace de
noms "[Link]" se déclare comme
"[Link]".
 La classe Console qui se trouve dans l'espace de
noms "System" se déclare comme
"[Link]".

Cours .NET avec C# 16


La quatrième couche
 Common Language Runtime (CLR) :
Environnement d'exécution commun de tous
les programmes s'exécutant dans .NET.
 Le CLR exécute un bytecode écrit dans un
langage intermédiaire (MSIL)

Cours .NET avec C# 17


La quatrième couche

Un programme C# est compilé en deux


passages :
 le premier est dû à l'utilisation du compilateur
C# produisant exécutable portable en
bytecode MSIL,
 le second est le compilateur JIT qui traduit à
chaque appel de méthode, le bytecode MSIL
en instructions du processeur de la plate-
forme.
Cours .NET avec C# 18
La quatrième couche

Cours .NET avec C# 19


Langage C#

Programmation de base

Cours .NET avec C# 20


Introduction

 C# est un langage orienté objet


 Créé par Microsoft pour fonctionner avec la plateforme
.NET
 Utilisé pour créer des applications qui s’exécutent dans le
[Link]
 Permet de créer plusieurs types d’applications :
 Application console exécutées à partir d’une ligne de
commande
 Applications Windows intégrant des contrôles (boutons,
menus, …)
 Applications Web pouvant être visualisées à partir de
n’importe quel navigateur Web
 etc

Cours .NET avec C# 21


Introduction

 Nous traitons C# d 'abord comme un langage


de programmation classique.
 Nous aborderons les objets, les applications
Windows et les bases de données
ultérieurement.
 La programmation classique s'efforce à
séparer les données des instructions :
 des données
 les instructions qui les manipulent

Cours .NET avec C# 22


Les données de C#

C# utilise les types de données suivants:


 les nombres entiers

 les nombres réels

 les caractères et chaînes de caractères

 les booléens

 les objets

Cours .NET avec C# 23


Exemple d’une application Console

using System;
class Program
{
public static void Main(string[] args)
{
[Link]("C’est un test");
[Link]();
}
}
Cours .NET avec C# 24
Types simples

 En C# chaque variable doit être déclarée


avant d’être utilisée
 La déclaration d’une variable se fait selon la
syntaxe suivante :

Type_de données nom_variable;

 C # fournit plusieurs types de données

Cours .NET avec C# 25


Types simples : entiers

Type Codage Valeurs admises


sbyte 1 octet -128 et 127
byte 1 octet 0 et 255
short 2 octets -32768 et 32767
unshort 2 octets 0 et 65535
int 4 octets -2147483648 et 2147483647
uint 4 octets 0 et 4294967296
long 8 octets –9223372036854775808 et
9223372036854775807
ulong 8 octets 0 et 18446744073709551615

Cours .NET avec C# 26


Types simples : réels

Type Codage Valeurs admises

float 4 octets 1.5 10-45 et 3.4 10+38

double 8 octets 5.0 × 10-324 et 1.7 10+308

decimal 16 octets 1.0 10-28 et 7.9 10+28

Cours .NET avec C# 27


Types simples : autres

Type Valeurs admises

char Caractère

bool Booléen (true ou false)

string Chaîne de caractères

Cours .NET avec C# 28


Types simples : entiers

Type Alias
sbyte [Link]
byte [Link]
short System.Int16
unshort System.UInt16
int System.Int32
uint System.UInt32
long System.Int64
ulong System.UInt64

Cours .NET avec C# 29


Types simples : réels

Type Alias

float [Link]

double [Link]

decimal [Link]

Cours .NET avec C# 30


Types simples : autres

Type Alias

char [Link]

bool [Link]

string [Link]

Cours .NET avec C# 31


Exemples

 Int x=12;
 char a='A', b='b‘;
 String x="c:\\chap1\\paragraph3"
 String x=@"c:\chap1\paragraph3"
 bool v1=true, v2=false;
 Datetime date= new DateTime(1954,10,13);

Cours .NET avec C# 32


Boxing / Unboxing

Les opérations implicites de boxing/unboxing


se font sur les types suivants :
int Int32
long Int64
decimal Decimal
bool Boolean
char Char
byte Byte
float Float
double Double
enum Enum

Cours .NET avec C# 33


Séquences d’échappement

 Chaîne ayant une signification particulière :


 \’ : guillemet simple (quôte)
 \ » : guillemet
 \\ : barre oblique inverse
 \a : alerte
 \n : retour à la ligne
 \f : saut de page
 \t : tabulation horizontale
 \v : tabulation verticale
Cours .NET avec C# 34
Conversion de types

En java, on dispose de trois types de


conversions :
 Conversion implicite

 Conversion explicite (cast)

 Conversion en utilisant des méthodes

Cours .NET avec C# 35


Conversion implicite de types

On peut faire une conversion d’une manière implicite.


Exemples :
 int a=6;//le type int est codé sur 32 bits

 long b=a; //le type long est codé sur 64 bits

 Dans cet exemple, le sur-casting se fait


implicitement

Cours .NET avec C# 36


Conversion implicite de types

Conversion implicite est aussi appelé


conversion élargissante (pas de perte
d’information). Elle permet de passer de :
 byte : short,ushort,int,uint,long,ulong,float,double,decimal
 sbyte:short,int,long,float,double,decimal
 short: int, long, float, double, decimal
 ushort:int,uint, long,ulong, float, double, decimal
 int : long, float, double,decimal
 long : float, double,decimal
 ulong : float, double,decimal
 float : double
 char : ushort,int,uint, long,ulong, float, double, decimal

Cours .NET avec C# 37


Conversion explicite de types

Un casting explicite peut être effectué


simplement en faisant précéder la valeur par
l'indication du nouveau type entre
parenthèses.
Exemples :
double d=97.564;
float f=(float)d;
int i=(int)f;

Cours .NET avec C# 38


Conversion explicite de types

 Cette conversion est appelée aussi conversion


rétrécissante (perte d’informations)
 byte: char
 short: char, byte
 char: short, byte
 int: char, short, byte
 long: int, char, short, byte
 float: long, int, char, short, byte
 double: float, long, int, char, short, byte

Cours .NET avec C# 39


Conversion explicites à l’aide de Convert

 C# fournit des méthodes qui permettent de


convertir des chaînes en nombres
 L’opération de conversion peut échouer dans
le cas où la chaîne contient des données non
numériques
 On trouve, les méthodes de la forme :
 [Link](chaîne), Où XXX : indication du type destinataire
 [Link](chaîne), où
type:int,Int32,long,Int64,double,Double,float,Float

 Ces méthodes font partie de l’espace de


noms System
Cours .NET avec C# 40
Conversion explicites à l’aide de Convert

Commande Résultat
[Link](val) val convertie en bool
[Link](val) val convertie en byte
[Link](val) val convertie en char
[Link](val) val convertie en decimal
[Link](val) val convertie en double
Convert.ToInt16(val) val convertie en short
Convert.ToInt32(val) val convertie en int

Cours .NET avec C# 41


Conversion à l’aide des méthodes de
Convert
Commande Résultat
Convert.ToInt64(val) val convertie en long
[Link](val) val convertie en sbyte
[Link](val) val convertie en float
[Link](val) val convertie en string
Convert.ToUInt16(val) val convertie en ushort
Convert.ToUInt32(val) val convertie en uint
Convert.ToUInt64(val) val convertie en ulong

Cours .NET avec C# 42


Conversion l’aide des méthode de Parse

Commande Résultat
[Link](chaine) chaîne convertie en Int32
[Link] chaîne convertie en Int32
[Link](chaine) chaîne convertie en Int64
[Link] chaîne convertie en Int64
[Link](chaîne) chaîne convertie en Double
[Link](chaîne) chaîne convertie en Double
[Link](chaîne) chaîne convertie en Float
[Link](chaîne) chaîne convertie en Float
Cours .NET avec C# 43
Conversion l’aide des méthode de Parse

La conversion d'une chaîne vers un nombre peut


échouer si la chaîne ne représente pas un nombre.
Il y a alors génération d'une erreur fatale appelée
exception en C#.
Cette erreur peut être gérée par la clause try/catch :
try{
appel de la fonction susceptible de générer l'exception
}catch (Exception e){
traiter l'exception e
}
instruction suivante

Cours .NET avec C# 44


Opérateurs et expressions

 Une expression est une combinaison de


variables et ou de constantes
 La combinaison se fait à l’aide d’opérateurs
 On distingue trois catégories d’opérateurs :
 Unaires : appliqués à une seule opérande
 Binaires : appliqués à deux opérandes
 Ternaires : appliqués à trois opérandes

Cours .NET avec C# 45


Opérateurs mathématiques

Opérateur Catégorie Utilisation

+ binaire v1=v2 + v3

- Binaire v1=v2 - v3

* Binaire v1=v2 * v3

/ Binaire v1=v2 / v3

% Binaire v1=v2 % v3

Cours .NET avec C# 46


Opérateurs mathématiques

Opérateur Catégorie Utilisation

+ Unaire v1=+ v3

- Unaire v1=- v3

++ Unaire v1=++v3,
v1=v3++
-- Unaire v1=--v3
v1==v3--

Cours .NET avec C# 47


Opérateurs d’affectation

Opérateur Catégorie Utilisation


= Binaire v=w
+= Binaire v+=w (v=v+w)
-= Binaire v-=w (v=v-w)
*= Binaire v*=w (v=v*w)
/= Binaire v/=w (v=v/w)
%= Binaire v%=w (v=v%w)

Cours .NET avec C# 48


Opérateurs relationnels

Opérateur Catégorie Utilisation


== Binaire v==w
!= Binaire v!=w
< Binaire v<w
<= Binaire v<=w
> Binaire v>w
>= binaire v>=w

Cours .NET avec C# 49


Opérateurs logiques

Opérateur Catégorie Utilisation

! Unaire var1=!var2

&& Binaire var1=var2&&var3

|| Binaire var1=var2||var3

^ binaire var1=var2^var3

Cours .NET avec C# 50


Opérateurs par priorité

Opérateurs unaires ++exp,--exp,+exp,-exp, !


Multiplicatifs *, /, %
Additifs +, -
Relationnels <, <=, >, >=
Égalité ==, !=
Et logique &&
Ou logique ||
affectation =, +=, -=, *=, /=, %=

Cours .NET avec C# 51


Opérateurs

 Les opérateurs les plus prioritaires sont


évalués en premier
 Deux opérateurs de même priorité sont
évalués de gauche à droite, à l’exception des
opérateurs d’affectation qui sont évalués de
droite à gauche

Cours .NET avec C# 52


Lecture/écriture

La classe [Link] donne accès aux


opérations de lectures / écriture :
 [Link]() affiche

 [Link]() affiche et
passe à la ligne suivante
 [Link]() lit un caractère
et retourne son code
 [Link]() lit une ligne
et retourne une chaîne de caractères

Cours .NET avec C# 53


Lecture/écriture

Remarque :
Au lieu de donner la spécification complète des
méthodes de lecture écriture, on peut l’espace des
noms System, ainsi :

[Link]();
Est équivalent à
Using System;

[Link]()

Cours .NET avec C# 54


Structures de contrôle

 L'instruction conditionnelle if
if (expression) instruction;
ou :
if (expression) {
instruction1;
instruction2;
}
 L'instruction conditionnelle else
if (expression) {
instruction1;
}else {
instruction2;
}
Cours .NET avec C# 55
Structures de contrôle

 Les instructions conditionnelles


imbriquées
if (expression1) {
bloc1;
}
else if (expression2) {
bloc2;
}
else if (expression3) {
bloc3;
}
else {
bloc5;
}
Cours .NET avec C# 56
Structures de contrôle

 L'instruction switch
switch( variable) {
case valeur1: instructions1;break;
case valeur2: instructions2;break;
case valeur3: instructions2;break;
.
.
case valeurN: instructionsN;break;
default: instructions;break;
}

Cours .NET avec C# 57


Structures de contrôle

 La boucle for
La boucle for est une structure employée pour exécuter un bloc
d'instructions un nombre de fois en principe connu à l'avance. Elle
utilise la syntaxe suivante :
for (initialisation;test;incrémentation) {
instructions;
}
Exemple :
int i = 0;
for (i = 2; i < 10;i++) {
[Link]("Vive Java !");
}

Cours .NET avec C# 58


Structures de contrôle

 Branchement au moyen des instructions break et continue


break:
int x = 10;
for (int i = 0; i < 10; i++) {
x--;
if (x == 5) break;
}
[Link](x);
continue:

for (int i = 0; i < 10; i++) {


if (i == 5) continue;
[Link](i);
}

Cours .NET avec C# 59


Structures de contrôle

 L ’instruction While Exemple :


int s=0,i=O;
while (condition){ while (i<10){
BlocInstructions; s+=i;
} i++;
}

 L ’instruction do ..
while
Exemple :
do int s=0,i=O;
BlocInstructions; do{
while (condition) s+=i;
i++;
}
while (i<10)
Cours .NET avec C# 60
Langage C#

Programmation Orienté Objet

Cours .NET avec C# 61


Approches orientées objet
(Rappel)
Approches classiques
Séparation nette entre les données et les
procédures de traitement de ces données

Au moindre changement des données, il faut
modifier les procédures de manipulation de
ces données

Cours .NET avec C# 62


Approches orientées objet
(Rappel)
Approches classiques


Difficulté de maintenance !!


Solution : Approche Orienté Objet

Cours .NET avec C# 63


Approches orientées objet
(Rappel)
 Programme : ensemble d’objets indépendants
communicant par envoi de messages
 Lorsqu’un objet désire une information d’un autre
objet, il lui envoi un message
 Les messages sont le seul moyen de
communication entre objets
 Un objet regroupe ses données et les procédures
de manipulation de ces données

Cours .NET avec C# 64


Approches orientées objet
(Rappel)
 Programme = ensemble d’objets
 Objet = données + procédure
 Communication = envoi de message

Cours .NET avec C# 65


Approches orientées objet
(Rappel)
L’orienté objet repose sur trois concepts de
base :
 Le concept de structuration en utilisant les objets
et les classes
 Le concept de communication par envoi de
messages
 Le concept de construction par affinage avec
l’héritage.

Cours .NET avec C# 66


Approches orientées objet
(Rappel)
 Un objet est une entité
 Autonome (ayant des limites bien définies)
 Ayant une existence propre
 Ayant un sens dans le domaine étudié
 Un objet regroupe à la fois
 Des données (attributs)
 Des procédures (opérations)

Notion d’Encapsulation

Cours .NET avec C# 67


Approches orientées objet
(Rappel)

Données
} •Partie statique, passive
•Partie cachée, privée

Traitement
} •Partie dynamique, comportementale
•Partie visible, publique
•Interface avec l’extérieur

User Cours .NET avec C# 68


Approches orientées objet
(Rappel)
 Les données de l’objet constituent sa partie
privée, càd la partie cachée
 Les opérations est la partie accessible
depuis l’extérieur : pour accéder aux
données de l’objet on est obligé de passer
par les méthodes
Interface de l’objet

Cours .NET avec C# 69


Approches orientées objet
(Rappel)
 Plusieurs objets peuvent avoir des données
et des comportements (opérations) en
commun
Il devient nécessaire de les regrouper dans un
modèle général : classe d’objets
 Une classe est un ensemble d’objets ayant
les mêmes données et les mêmes opérations

Cours .NET avec C# 70


Approches orientées objet
(Rappel)
 Une classe est un moule à partir de laquelle
on crée (instancie) des objet

 les objets sont des instances d’une classe
 L’instanciation est la création d’un objet d’une
classe

Cours .NET avec C# 71


Approches orientées objet
(Rappel)

Personne
Code
Nom
Classe d’objets (classe)
Adresse
parler()
marcher()

Instance
Instance

320
120
Benabbou
El Hachimi Objets
110, Avenue …
32, Rue …
Cours .NET avec C# 72
Approches orientées objet
(Rappel)
Remarques
 Classe : modèle général

 Objets :
 cas particuliers
 Instances
 occurrences

Cours .NET avec C# 73


Approches orientées objet
(Rappel)
 Les objets communiquent par envoi de messages
 Envoyer un message à un objet, c’est lui demander un service
 Lorsqu’un objet reçoit un message :
 Soit le message correspond à un traitement défini dans la

classe de l’objet auquel cas la méthode correspondante est


exécutée.
 Soit le message ne correspond pas, l’objet refuse le

message et signale une erreur

Cours .NET avec C# 74


Approches orientées objet
(Rappel)
Compte
N°Compte
Solde
déposer()
retirer()
avoirSolde()

Instance
Instance

AB320
C120
1370,50
5000
déposer 1000 retirer 500

Cours .NET avec C# 75


Généralisation / Spécialisation et héritage

 La généralisation est la relation entre une


classe et une ou plusieurs de ses versions
raffinées.
 On appelle la classe dont on tire les
précisions la super-classe et les autres
classes les sous-classes.
 C’est une relation de type « est un (is a) » ou
« est une sorte de ».

Cours .NET avec C# 76


Généralisation / Spécialisation et héritage

La classe spécialisée (sous-classe)


 hérite les méthodes et les attributs de la
classe générale (super-classe)
 peut ajouter ses propres attributs et
méthodes.
 peut redéfinir le comportement d’une
méthode, mais pas des attributs.

Cours .NET avec C# 77


Généralisation / Spécialisation et héritage

Compte
- N°Compte : String
- Solde : float
+ <<Constructor>> Compte ()
+ Déposer (float Somme) : void
+ Retirer (float Somme) : float
+ AvoirSolde () : String

Dans la classe CompteEpargne :


•N°Compte et Solde : hérités
•Déposer(), Retirer() : héritées
•avoirSolde() est une méthode redéfinie
CompteEpargne
- Taux : float
+ AvoirSolde () : String

Cours .NET avec C# 78


Interprétation des messages

Lorsqu’un objet reçoit un message :


 Si sa classe contient une méthode de même
nom, elle sera exécutée
 Sinon, on remonte dans la hiérarchie à la
recherche d’une méthode de même nom.

Cours .NET avec C# 79


Interprétation des messages

Exemple
Soit CE une instance de la classe
CompteEpargne :
 C.déposer() : fait appel à la méthode ‘déposer’ de
la classe ‘Compte’
 [Link]() : fait appel à la méthode
‘avoirSolde’ de la classe ‘CompteEpargne’

Cours .NET avec C# 80


Généralisation / Spécialisation et héritage

Remarques
 La généralisation et la spécialisation sont deux
façons pour voir la même relation, top-down
(spécialisation) ou bottom-up (généralisation).
 L'héritage est l’implémentation de la relation de
la généralisation/spécialisation.
 Une classe Java ne peut hériter que d’une seule
classe.

Cours .NET avec C# 81


Généralisation / Spécialisation et héritage

Personnes
- Code : int
- Nom : String
+ <<Constructor>> Personnes (int Code, String Nom)
+ getNom () : String
+ getInf () : String

Spécialisation Super classe, classe mère


Généralisation
Etudiants
- Salaire : float
+ <<Constructor>> Etudiants (int Code, String Nom, float Salaire)
+ getInf () : String
+ getSalaire () : float

Employes
Sous classes - Filiere : String
Classes filles + <<Constructor>> Employes (int Code, String Nom, String Filiere)
Classes dérivées + getInf () : String
+ getFiliere
Cours .NET avec C# () : String 82
Création d'une classe

class Compte{
//déclaration des données (privées)
private String NCompte;
private float Solde;

Cours .NET avec C# 83


Création d'une classe
class Compte{

//Déclaration des méthodes (publics)
public Compte(String n, float s){NCompte=n;Solde=s;}
public void deposer(float somme){Solde+=somme;}
public void retirer(float somme){
if (Solde<somme)
[Link](«Solde insuffisant ! »);
else
Solde-=somme;
}
public float avoirSolde(){return Solde;}
}

Cours .NET avec C# 84


Création d'une classe

 Les données sont généralement privées.


 Les méthodes sont généralement publiques
(interface)
 Le constructeur est une méthode spéciale :
 Porte le même nom que la classe
 Utilisée pour initialiser les objets
 Ne retourne aucune valeur, même void
 Invoquée implicitement au moment de la création des
objets
 On peut avoir plusieurs constructeurs

Cours .NET avec C# 85


Création d'objets (instances)
class test{
public static void Main(String arg[]){
Compte c1=new Compte("C120",5000);
Compte c2;
c2=new Compte("AB320",1370.50);
float s=[Link]; Erreur, car …
float s1=[Link]();
[Link]("Solde "+s1);
[Link](500);
[Link]("Solde "+[Link]());

}
}

Cours .NET avec C# 86


Création d'objets (instances)

 Le mot clé this désigne l’objet courant (l’objet qui


fait appel à la méthode)
 Par exemple
public void deposer(float somme){
/*augmenter le solde de l’objet faisant appel à la méthode
déposer()*/
[Link]+=somme;
}

Compte c1=new Compte(100,3500)
[Link](2000); // this indique l’objet c1

Cours .NET avec C# 87


Création d'objets (instances)

 Remarque
Le mot clé this est obligatoire lorsqu’il y a conflit
entre un attribut de classe et un argument de la
méthode utilisant cet attribut
 Par exemple :
public Compte(String NCompte, float Solde){
[Link]=NCompte;
[Link]=Solde;
}
Argument de la méthode

Attribut de la classe

Cours .NET avec C# 88


Données de classes/d'instances

Une donnée (attribut ou méthode) peut être :


 Donnée d'instance, propre à l'objet

 Donnée de classe, partagée entre tous les


objets de la classe

Cours .NET avec C# 89


Données de classes/d'instances

Une donnée d'instances


 Attribut : chaque objet possède sa propre
valeur
 Méthode : invoquée en faisant référence à
l'objet

Cours .NET avec C# 90


Données de classes/d'instances

Une donnée de classe (déclaration précédée


du mot clé "static)
 Attribut : partagée entre tous les objets de la
classe.
 Méthode : invoquée en précisant la classe à
la place de l'objet

Cours .NET avec C# 91


Données statiques

class Personne{
//attributs d'instances
private int Code;
private String Nom;
//attribut de classe (statique)
private static int NbreEmp;

}

Cours .NET avec C# 92


Données statiques

class Personne{

public Personne(int code, String nom){
NbrePers++;Code=code;Nom=nom;
}
public String getInf(){
return "Code "+Code+"\nNom "+Nom;
}
public static int getNbre(){
return NbrePers;
}
}

Cours .NET avec C# 93


Données statiques

class test{
public static void Main(String arg[]){
Personne p=new Personne(10, "A. B");
Personne q=new Personne(20, "I. I");
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
}

Cours .NET avec C# 94


Notion d'héritage

L’héritage est le mécanisme de partage des


informations entre objets tout en préservant
leurs différences

Cours .NET avec C# 95


Notion d'héritage
Personnes
- Code : int
- Nom : String
+ <<Constructor>> Personnes (int Code, String Nom)
+ getNom () : String
+ getInf () : String

Etudiants
- Code : int
- Nom : String
- Salaire : float
+ <<Constructor>> Etudiants (int Code, String Nom, float Salaire)
+ getNom () : String
+ getInf () : String
+ getSalaire () : float

Employes
- Code : int
- Nom : String
- Filiere : String
+ <<Constructor>> Employes (int Code, String Nom, String Filiere)
+ getNom () : String
+ getInf () : String
+ getFiliere ()Cours .NET avec C# : String 96
Notion d'héritage
Personnes
- Code : int
- Nom : String
+ <<Constructor>> Personnes (int Code, String Nom)
+ getNom () : String
+ getInf () : String

Spécialisation Super classe, classe mère


Généralisation
Etudiants
- Salaire : float
+ <<Constructor>> Etudiants (int Code, String Nom, float Salaire)
+ getInf () : String
+ getSalaire () : float

Employes
Sous classes - Filiere : String
Classes filles + <<Constructor>> Employes (int Code, String Nom, String Filiere)
Classes dérivées + getInf () : String
+ getFiliere
Cours .NET avec C# () : String 97
Notion d'héritage
class Personne{
private int Code;
private String Nom;
public Personne(int code, String nom){
Code=code; Nom=nom;
}
public String getNom(){
return Nom;
}
public String getInf(){
return "Code :"+Code +"\nNom : Nom";
}
}

Cours .NET avec C# 98


Notion d'héritage
class Employe : Personne{
private float Salaire;
public Employe(int code, String nom, float salaire):base(code,nom){
Salaire=salaire;
}
public float getSalaire(){
return Salaire;
}
public String getInf(){
String inf=[Link]();
Inf=inf + "\nSalaire :"+Salaire;
return Inf;
}
}

Cours .NET avec C# 99


Notion d'héritage
class Etudiant : Personne{
private float Salaire;
public Etudiant(int code, String nom, String filiere):base(code,nom){
Filiere=filiere;
}
public float getFilere(){
return Filiere;
}
public String getInf(){String inf=[Link]();
Inf=inf + "\nFiliere :"+Filiere;
return Inf;
}
}

Cours .NET avec C# 100


Notion d'héritage

Trois type de visibilités de données


 Privée : donnée visible que par les méthodes de
la classe
 Protégée : donnée visible que par les méthodes
de la classes et des sous classes directes
 Internal : donnée visible dans tous le projet
 Publique : donnée visible depuis n'importe quelle
méthode

Cours .NET avec C# 101


Langage C#

Chaînes de caractères, tableaux et


collections

Cours .NET avec C# 102


Les tableaux de données

 Un tableau C# est un objet qui rassemble des


données de même type
 Sa déclaration peut se faire de deux façons :
 Type[] Tableau=new Type[n], n est le nombre de données
que peut contenir le tableau.
 Type[] Tableau=new Type[]{val1,val2,val3, ., .};
 Tableau[i] désigne la donnée n°i où i appartient à
l'intervalle [0,n-1].
 Les tableaux ont une propriété Length qui est le
nombre d'éléments du tableau.

Cours .NET avec C# 103


Les tableaux de données

Toute référence à la donnée Tableau[i] où i n'appartient


pas à l'intervalle [0,n-1] provoquera une exception.
Il y a alors génération d'une erreur fatale appelée
exception en C#.
Cette erreur peut être gérée par la clause try/catch :
try{
appel de la fonction susceptible de générer l'exception
}catch (Exception e){
traiter l'exception e
}
instruction suivante
Cours .NET avec C# 104
Le type String

 Le type de données String n'est pas un type


élémentaire en C#, c'est une classe.
 Une chaîne est un objet qui n'est utilisable
qu'à travers les méthodes de la classe String.
 La classe String est identique au type simple
string. Elle présente de nombreuses
propriétés et méthodes. En voici quelques-
unes :

Cours .NET avec C# 105


La classe String

 public int Length() : longueur d’une chaîne


 public bool EndsWith(string value): vrai si la
chaîne se termine par value
 public bool StartsWith(string value) : vrai si la
chaîne commence par value
 public bool Equals(object obj) : rend vrai si la
chaînes est égale à obj (équivalent chaîne==obj)
 public int IndexOf(string value, int startIndex) : la
première position dans la chaîne de la chaîne value
(la recherche commence à partir du caractère n°
startIndex)

Cours .NET avec C# 106


La classe String

 public int IndexOf(char value, int startIndex) :


idem mais pour le caractère value
 public string Insert(int startIndex, string value) :
insère la chaîne value dans chaîne en position
startIndex
 public static string Join(string separator, string[]
value) : méthode de classe - rend une chaîne de
caractères, résultat de la concaténation des valeurs
du tableau value avec le séparateur separator
 public int LastIndexOf(char value, int startIndex,
int count)

Cours .NET avec C# 107


La classe String

 public int LastIndexOf(string value, int


startIndex, int count) : idem indexOf mais rend la
dernière position au lieu de la première
 public string Replace(char oldChar, char
newChar) : rend une chaîne copie de la chaîne
courante où le caractère oldChar a été remplacé par
le caractère newChar
 public string[] Split(char[] separator) : la chaîne
est vue comme une suite de champs séparés par
les caractères présents dans le tableau separator.
Le résultat est le tableau de ces champs

Cours .NET avec C# 108


La classe String

 public string Substring(int startIndex, int length)


: sous-chaîne de la chaîne courante commençant à
la position startIndex et ayant length caractères
 public string ToLower() : rend la chaîne courant en
minuscules
 public string ToUpper() : rend la chaîne courante
en majuscules
 public string Trim() : rend la chaîne courante
débarassée de ses espaces de début et fin

Cours .NET avec C# 109


Collections : la classe ArrayList

 La classe ArrayList permet d'implémenter


des tableaux de taille variable au cours de
l'exécution du programme, ce que ne permet
pas les tableaux précédents.
 Voici quelques-unes des propriétés et
méthodes courantes :

Cours .NET avec C# 110


Collections : la classe ArrayList

Nom Description

ArrayList() construit un tableau vide

int Count nombre d'éléments du tableau

int Add(object value); ajoute l'objet value à la fin du tableau

void AddRange(Collection ajoute la collection (peut être un


c) tableau) à la fin du tableau
void Clear() efface le tableau

Cours .NET avec C# 111


Collections : la classe ArrayList

Nom Description

int IndexOf(object value); indice de l'objet value dans le


tableau ou -1 s'il n'existe pas
int IndexOf(object value, int idem mais en cherchant à partir de
startIndex); l'élément n° startIndex

int LastIndexOf(object value); idem mais rend l'indice de la


int LastIndexOf(object value, int dernière occurrence de value dans
startIndex); le tableau

Cours .NET avec C# 112


Collections : la classe ArrayList
Nom Description

void Remove(object obj); enlève l'objet obj s'il existe dans le


tableau
void RemoveAt(int index); enlève l'élément i du tableau

int BinarySearch(object rend la position de l'objet value dans le


value) tableau ou -1 s'il ne s'y trouve pas. Le
tableau doit être trié
void Sort() trie le tableau. Celui-ci doit contenir
des objets ayant une relation d'ordre
prédéfinie (chaînes, nombres)
void Sort(comparer) trie le tableau selon la relation d'ordre
établie par la fonction comparer
Cours .NET avec C# 113
ArrayList
static void afficheVector (ArrayList vect)
{
[Link]( "Vecteur taille = " + [Link] );
for ( int i = 0; i<= [Link]-1; i++ )
[Link]( "Vecteur[" + i + "]=" + (string)vect[ i ] );
}
static void VectorInitialiser ( )
{
ArrayList table = new ArrayList( );
string str = "val:";
for ( int i = 0; i<=5; i++ )
[Link](str + [Link]( ) );
afficheVector(table);
}

Cours .NET avec C# 114


SortedList

 Si l'on souhaite gérer une liste triée par clef, il


est possible d'utiliser la classe SortedList
 Cette classe représente une collection de
paires valeur-clé
 Cette liste est triée par les clés toutes
différentes et accessibles par clé et par index

Cours .NET avec C# 115


SortedList

 int Add( object key,object value ):Ajoute un élément


avec la clé key et la valeur value spécifiées dans le
SortedList.
 void CopyTo( Array array,int arrayIndex ):Copie les
éléments du SortedList dans une instance Array
array unidimensionnelle à l'index arrayIndex spécifié
(valeur de l'index dans array où la copie
commence).
 void Clear( ):Supprime tous les éléments de
SortedList.
 object GetByIndex( int index ):Obtient la valeur à
l'index spécifié de la liste SortedList.

Cours .NET avec C# 116


SortedList

 object GetKey( int index ):Obtient la clé à l'index


spécifié de SortedList.
 int IndexOfValue( object value ):Retourne l'index de
base zéro de la première occurrence de la valeur
value spécifiée dans SortedList.
 int IndexOfKey( object key ):Retourne l'index de
base zéro de la clé key spécifiée dans SortedList.
 void Remove( object key ):Supprime de SortedList
l'élément ayant la clé key spécifiée.
 void RemoveAt( int index ):Supprime l'élément au
niveau de l'index spécifié de SortedList.

Cours .NET avec C# 117


SortedList

SortedList Liste = new SortedList ( );


[Link](100,"…");[Link](45,"…");
for (int i=0; i<[Link]; i++) //Balayage par index :
[Link]( (string)[Link](i) );
foreach(string s in [Link]) //Balayage des valeurs :
[Link]( s );
foreach(object k in [Link]) //Balayage des clefs :
[Link]( Liste[k] );

Cours .NET avec C# 118


Pile

 La classe Stack représente une pile LIFO (Last In


First Out)
 Elle présente plusieurs méthodes :
 object Peek ( ):Renvoie la référence de l'objet situé au
sommet de la pile.
 object Pop( ):Dépile la pile (l'objet au sommet est enlevé et
renvoyé)
 void Push( object elt ):Empile un objet au sommet de la pile.
 object [ ] ToArray( ):Recopie toute la pile dans un tableau
d'objet depuis le sommet jusqu'au fond de la pile (dans
l'ordre du dépilement).

Cours .NET avec C# 119


File

 La classe Queue représente une file FIFO (First In


First Out)
 Elle dispose de plsieurs méthodes :
 object Peek ():Renvoie la référence de l'objet situé au
sommet de la file.
 object Dequeue():L'objet au début de la file est enlevé et
renvoyé.
 void Enqueue (object elt):Ajoute un objet à la fin de la file.
 object [ ] ToArray():Recopie toute la file dans un tableau
d'objet depuis le début de la file jusqu'à la fin de la file.

Cours .NET avec C# 120


Langage C#

Applications Windows

Cours .NET avec C# 121


Introduction

La plupart des contrôles de .NET dérivent de la


classe :
[Link]

Plusieurs propriétés et événements sont
communs à plusieurs contrôles

Cours .NET avec C# 122


Quelques propriétés de la classe Control

Nom description

BackColor Couleur d’arrière plan

Bottom Distance entre le sommet de la fenêtre et le bas du


contrôle
Enabled Active ou désactive le contrôle

ForeColor Couleur d’avant plan du contrôle

Height Hauteur du contrôle

Left Distance entre le bord gauche de la fenêtre et le bord


gauche du contrôle
Cours .NET avec C# 123
Quelques propriétés de la classe Control

Nom description

Name Nom du contrôle

Right Distance entre le bord droit du contrôle avec le bord


gauche de la fenêtre
TabIndex Numéro que possède le contrôle dans l’ordre de
tabulations
Top Distance entre le haut du contrôle et le haut de la fenêtre

Visible Visible ou non lors de l’exécution

Width Largeur du contrôle

Cours .NET avec C# 124


Quelques événements de la classe Control

Nom description

Click Clic sur le contrôle

DoubleClick Double clic sur le contrôle

DragDrop Opération glisser-déplacer est términée

DragEnter Un objet déplacé franchit le contrôle

DragLeave Un objet déplacé quitte le contrôle

DragOver Un objet déplacé glisse sur le contrôle

Cours .NET avec C# 125


Quelques événements de la classe Control

Nom description

KeyDown Une touche est enfoncée

KeyPress Une touche clavier est enfoncée

KeyUp Une touche est relâchée

GotFocus Le contrôle reçoit le focus

LostFocus Le contrôle perd le focus

MouseDown Un bouton de la souris est enfoncée

Cours .NET avec C# 126


Quelques événements de la classe Control

Nom description

MouseMove La souris passe sur le contrôle

MouseUp Le bouton de la souris est relâchée

Paint Un contrôle est dessiné

Cours .NET avec C# 127


Contrôle Button

 Trois types de boutons :


 Boutons de commande : pour exécuter des
actions
 Boutons radio :
 Cases à cocher :
 La classe Button dérive de la classe
ButtonBase qui dérive de la classe Control

Cours .NET avec C# 128


Classe Button

Nom Description

FlatStyle Style du bouton

Enabled Activé ou désactivé

Image Image sur le bouton

ImageAlign Alignement de l’image

Cours .NET avec C# 129


Contrôles Label et LinkLabel

 Permettent d’afficher un texte fixe


 Deux types d’étiquettes :
 Label : étiquette standard de Windows
 LinkLabel : étiquette se présentant sous forme
d’un lien hypertexte

Cours .NET avec C# 130


Contrôles Label et LinkLabel (quelques
propriétés)
Nom Description

BorderStyle Style de la bordure

DisabledLinkColor Couleur d’un LinkLabel visité

FlatStyle Affichage du contrôle (PopUp, par exemple)

Image Image sur le contrôle

ImageAlign Alignement de l’image

Cours .NET avec C# 131


Contrôles Label et LinkLabel (quelques
propriétés)
Nom Description

LinkArea Plage de texte à afficher comme lien

LinkColor Couleur du lien

LinkVisited Indique si un lien est visité

Text Texte du contrôle

TextAlign Alignement du texte

Cours .NET avec C# 132


Contrôle TextBox

 Dérive du contrôle TextBoxBase qui dérive


de Control
 Contrôle permettant la saisie et l’affichage du
texte
 Le texte peut être sur une ou plusieurs lignes
 Le texte peut aussi être crypté (mot de
passe)

Cours .NET avec C# 133


Contrôles TextBox (quelques propriétés)

Nom Description

CharacterCasing La casse (lower, upper, normal)

MaxLength Nombre maximum de caractères

MultiLine Indique si une zone est multiligne

PasswordChar Caractère de mot de passe

ReadOnly Lecture seule

Cours .NET avec C# 134


Contrôles TextBox (quelques propriétés)

Nom Description

ScrollBars Si une zone peut avoir des barres de défilements

SelectedText Texte sélectionné

SelectionLength Nombre de caractères sélectionné

SelectionStart Début de la sélection

WordWrap Passage automatique à la ligne

Cours .NET avec C# 135


Contrôles TextBox (quelques événements)

Nom Description

Enter/Leave Entrer et quitter une zone de texte

GotFocus/LostFocus Recevoir et perdre le focus

KeyDown/KeyUp Appuyer et relâcher une touche

KeyPress Appuyer sur un touche

Change Le contenu d’une zone change

Cours .NET avec C# 136


Contrôle Button

 Trois types de boutons :


 Boutons de commande : pour exécuter des
actions
 Boutons radio :
 Cases à cocher :
 La classe Button dérive de la classe
ButtonBase qui dérive de la classe Control

Cours .NET avec C# 137


Contrôle Button

Nom Description

FlatStyle Style du bouton

Enabled Activé ou désactivé

Image Image sur le bouton

ImageAlign Alignement de l’image

Cours .NET avec C# 138


Contrôle RadioButton/CheckBox
(quelques propriétés)
Nom Description

Appearance Apparence du bouton (texte affiché à droite, …)

AutoCheck Coché par défaut

CheckAlign Alignement du texte % au bouton

Checked État du bouton (true, false)

Cours .NET avec C# 139


Contrôle RadioButton/CheckBox
(quelques événements)
Nom Description

CheckChanged Changement de l’état d’un bouton radio

Click Clic avec la souris

Cours .NET avec C# 140


Contrôles ListBox et CheckedListBox

 Permettent à l’utilisateur de faire un ou


plusieurs choix en même temps
 Ressemblent aux cases à cocher et aux
boutons radio
 ListBox dérive du contrôle ListControl qui
dérive lui-même de Control
 CheckedListBox dérive de ListBox

Cours .NET avec C# 141


Contrôle ListBox/CheckedListBox
(quelques propriétés)
Nom Description

SelectedIndex Indice de l’élément sélectionné (0, … ou -1)

ColumnWidth Valide pour une liste multi colonne

Items Éléments de la liste

MultiColumn Définie ou récupérer le nombre de colonnes

SelectedIndices Les indices des éléments sélectionnés

SelectedItem Élément sélectionné

Cours .NET avec C# 142


Contrôle ListBox/CheckedListBox
(quelques propriétés)
Nom Description

SelectedItems Les éléments sélectionnés

SelectionMode None : aucun élément ne peut être sélectionné


One : un seul élément peut être sélectionné
MultiSimple : plusieurs élément peuvent être
sélectionnés
MultiExtended : comme MultiSimple, mais on peut
utiliser CTRL et MAJ

Cours .NET avec C# 143


Contrôle ListBox/CheckedListBox
(quelques propriétés)
Nom Description

Sorted Trie alphabétique

Text Permet de sélectionner un texte ou récupère le


premier élément de la liste

CheckedIndices Les indices des éléments cochés de


CheckedListBox

CheckedItems Les éléments cochés de CheckedListBox

Cours .NET avec C# 144


Contrôle ListBox/CheckedListBox
(quelques méthodes)
Nom Description

ClearSelected Efface toutes les séléctions de la liste

FindString Renvoie la 1ère chaine de la liste commençant par la


chaine passée en argument
FindStringExact Comme FindString, mais la chaîne doit correspondre
en totalité
GetSelected Renvoie une valeur indiquant si un élément est
sélectionné
SetSelected Définit ou efface la sélection d’un élément

Cours .NET avec C# 145


Contrôle ListBox/CheckedListBox
(quelques méthodes)
Nom Description

ToString Renvoie l’élément couramment sélectionné

GetItemChecked Renvoie une valeur indiquant si un élément est


coché
GetItemCheckState Renvoie une valeur indiquant l’état de la case à
cocher d’un élément
SetItemChecked Définit l’élément spécifié à l’état coché

SetItemCheckState Définit l’état coché d’un élément

Cours .NET avec C# 146


Contrôle ListBox/CheckedListBox
(quelques événements)
Nom Description

Click Clic avec la souris

DoubleClick Double clic

ItemCheck État d’une case à cocher est modifié par


l’utilisateur
SelectedIndexChanged Index de l’élément sélectionné est modifié

Cours .NET avec C# 147


Contrôle ComboBox

 Combine une zone de texte (TextBox) et une


liste (ListBox)  il en hérite plusieurs
propriétés
 Ne permet de sélectionner qu’un élément à la
fois
 Il est possible de saisir une nouvelle entrée
dans la zone de texte

Cours .NET avec C# 148


Contrôle ComboBox (quelques propriétés)

Nom Description

DropDownStyle DropDown : on peut éditer la zone de texte et afficher


la liste
Simple : on peut éditer la zone de texte, mais la liste
est toujours affichée
DropDownList : on ne peut éditer la zone de texte
DroppedDown Indique si la liste est déroulante ou non

Items Contient tous les éléments de la liste

MaxLehgth Nombre maximum de caractères à saisir

Cours .NET avec C# 149


Contrôle ComboBox (quelques propriétés)

Nom Description

SelectedIndex Indice de l’élément sélectionné

SelectedItem Élément sélectionné

SelectedText Texte sélectionné

SelectionStart Début de la sélection

SelectionLength Longueur de la sélection

Sorted Tri alphabétique

Cours .NET avec C# 150


Contrôle ComboBox (quelques
événements)
Il existe trois actions principales dont on
souhaite être averti lorsqu’elles se
produisent:
 La sélection est modifiée

 L’état déroulant est modifié

 Le texte est modifié

Cours .NET avec C# 151


Contrôle ComboBox (quelques
événements)
Nom Description

DropDown La liste est déroulée

SelectedIndexChanged La sélection dans la liste est modifiée

KeyDown Voir précédemment

KeyPress Voir précédemment

KeyUp Voir précédemment

TextChanged La propriété Text est modifiée

Cours .NET avec C# 152


Langage C#

Architecture [Link]

Cours .NET avec C# 153


Introduction

[Link] comporte deux composants


essentiels :
 Les fournisseurs de données permettant un
accès en mode connecté
 L’objet DataSet pour un accès en mode
déconnecté

Cours .NET avec C# 154


Introduction

Cours .NET avec C# 155


Introduction

 Les fournisseurs sont employés pour :


 De travailler avec un base de données en mode
connecté
 Se connecter à une source de données
 Interroger une source de données
 L’objet DataSet permet :
 De travailler avec un ensemble de données en
mode déconnecté
 De manipuler des documents XML

Cours .NET avec C# 156


Fournisseurs d’accès aux données

[Link] comprend deux types de


fournisseurs de données :
 OLE [Link]
 pour les sources de données OLE DB
 font partie de [Link]
 SQL [Link]
 pour les sources de données SQL Server 7 ou
postérieur
 font partie de [Link]

Cours .NET avec C# 157


Fournisseurs d’accès aux données

Les objets importants dans un [Link]


 Connection
 Command
 DataAdapter
 DataReader
Elles font partie de :
 [Link]
 [Link]

Cours .NET avec C# 158


Fournisseurs d’accès aux données

Objet représenté [Link] [Link]

Command SqlCommand OleDbCommand

Connection SqlConnection OleDbConnection

DataAdapter SqlDataAdapter OleDbDataAdapter

DataReader SqlDataReader OleDbDataReader

Cours .NET avec C# 159


Objet Connection

 Présente une connexion à une source de


données
 Prend en charge les transaction
 Fait partie de :
 [Link]
 [Link]

Cours .NET avec C# 160


Quelques propriétés

ConnectionString Chaîne de caractère utilisée pour


se connecter à la source de
données
ConnectionTimeOut Délai d’attente(secondes), avant de
générer une exception

DataBase Base de données en cours ou base


de données avec laquelle une
connexion est souhaitée
DataSource Chemin d’accès et le nom de fichier
de la source de données

Cours .NET avec C# 161


Quelques méthodes

Close() Ferme la connexion

CreateCommand() Créer et retourne un objet Command


associé à la connexion

Dispose() Détruit l’objet Connexion

Open() Ouvre une connexion avec une base


de données

Cours .NET avec C# 162


Quelques méthodes

Remarque :
L’objet Connection possède 2 constructeurs :
 OleDbConnection() et OleDbConnection(String)
pour le fournisseur OleDb
 SqlConnection() et SqlConnection(String) pour le
fournisseur SqlClient

Cours .NET avec C# 163


Quelques méthodes

//Soit la chaîne de connexion suivante :


String str;
str="Provider=[Link].4.0;Data
Source=…";
//Les lignes suivantes créent une connexion
OleDbConnection con;
con=new OleDbConnection();
[Link]=str;
//On peut aussi utiliser
OleDbConnection con;
con=new OleDbConnection(str);

Cours .NET avec C# 164


Objet Command

 Peut représenter :
 une instruction SQL
 une procédure stockée sur le serveur
 Fait partie de :
 [Link]
 [Link]

Cours .NET avec C# 165


Quelques propriétés

CommandText Instruction SQL ou nom de la procédure


stockée

CommandTimeOut Délai d'attente (secondes), avant de générer


une exception

CommandType Le type de la commande :


[Link]
[Link]

[Link]

Connection Objet Connection utilisé par l'objet Command

Cours .NET avec C# 166


Quelques méthodes

Cancel() Annule l'exécution de l'objet


Command
ExecuteNonQuery() Exécute une requête de mise à jour,
d'insertion ou de suppression et
retourne le nombre de lignes affecté
par l'opération
ExecuteReader() Exécute un requête Select et retourne
le résultat à un objet DataReader
ExecuteScalar() Exécute une requête Select et
retourne la valeur du 1er champ de la
1ère ligne
Cours .NET avec C# 167
Objet DataReader

 Représente le flux d'enregistrement d'une


source de données
 Le flux peut être lu en avant seulement
 Fait partie de :
 [Link]
 [Link]
 S'obtient en exécutant la méthode
ExecuteReader() de l'objet Command

Cours .NET avec C# 168


Quelques propriétés

FieldCount Le nombre de colonnes dans la ligne en


cours

IsClosed Indique si l'objet DataReader est fermé

RecordAffected Renvoie le nombre de lignes affectés


par l'exécution de la requête

Cours .NET avec C# 169


Quelques méthodes

Close() Ferme l'objet DataReader

Getxxx() Retourne la valeur de la colonne


spécifiée:GetByte(), GetInt16(), …

GetDataTypeName() Renvoie le nom du type de données


de la colonne spécifiée par un n°

GetName() Renvoie le nom de la colonne


spécifiée par un n°

Cours .NET avec C# 170


Quelques méthodes

GetOrdinal() Retourne le n° de la colonne dont le


nom est passé comme argument

NextResult() Avance l'objet DataReader au résultat


suivant

Read() Avance à l'enregistrement suivant et


retourne true s'il reste des lignes
supplémentaires, false sinon

Cours .NET avec C# 171

Vous aimerez peut-être aussi