 |
Introduction aux Banques de Données |
|
|
Une Base de Données Comme Choix de Valeurs |
|
|
|
Une base de données est une liste de valeurs. Les valeurs
sont organisées pour les rendre facile à récupérer et, éventuellement, à
manipuler. Une base de données sur informatique est une liste de valeurs
qui sont stockées dans un ordinateur, généralement sous forme d'un ou
plusieurs fichiers. Les valeurs peuvent ensuite être consultées en cas de
besoin. Probablement le type le plus fondamental de liste de valeurs peut être
créé et géré comme un tableau.
|
|
Étude
Pratique : Présentation Des Bases de données
|
|
- Démarrez Microsoft Visual C#
- Créez une application Windows Forms nommée YNB1
- Dans l'Explorateur de Solutions, droit-cliquez Form1.cs et cliquez
Renommer
- Ecriez Centrale.cs et appuyez Entrée
Avant de créer un tableau, vous devez décider quel type de
valeurs chaque élément du tableau serait. Un simple tableau peut être fait de
valeurs de types primitifs. Voici un exemple:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private void Exercice_Load(object sender, EventArgs e)
{
var Numbres = new double[] { 12.44, 525.38, 6.28, 2448.32, 632.04 };
}
}
}
Une fois le tableau a été créé, vous pouvez accéder à
chacun de ses éléments en utilisant l'opérateur []. Voici un exemple:
private void Exercice_Load(object sender, EventArgs e)
{
var Numbres = new double[] { 12.44, 525.38, 6.28, 2448.32, 632.04 };
for (int i = 0; i < 5; i++)
lbxNumbres.Items.Add(Numbres[i].ToString());
}

Un tableau peut également être fait d'éléments qui sont
chacun de type composite. En d'autres termes, chaqu'élément peut être d'un
type de classe. Bien sûr, vous devez d'abord disposer d'une classe. Vous pouvez
utiliser une des nombreux classes intégré du .NET Framework ou vous pouvez créer
votre propre classe. Voici un exemple de classe:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Tableaux
{
public enum Genres { Male, Femelle, Inconnu }
public class Personne
{
public int PersonneID;
public string FirstName;
public string LastName;
public Genres Genre;
}
}
Après avoir créé la catégorie, vous pouvez ensuite
l'utiliser comme le type du tableau. Voici un exemple:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private void Exercice_Load(object sender, EventArgs e)
{
var Personnes = new Personne[]
{
new Personne()
{
PersonneID = 72947, Genre = Genres.Femelle,
FirstName = "Paulette", LastName = "Cranston"
},
new Personne()
{
PersonneID = 70854, Genre = Genres.Male,
FirstName = "Harry", LastName = "Kumar"
},
new Personne()
{
PersonneID = 27947, Genre = Genres.Male,
FirstName = "Jules", LastName = "Davidson"
},
new Personne()
{
PersonneID = 62835, Genre = Genres.Inconnu,
FirstName = "Leslie", LastName = "Harrington"
},
new Personne()
{
PersonneID = 92958, Genre = Genres.Male,
FirstName = "Ernest", LastName = "Colson"
},
new Personne()
{
PersonneID = 91749, Genre = Genres.Femelle,
FirstName = "Patricia", LastName = "Katts"
},
new Personne()
{
PersonneID = 29749, Genre = Genres.Inconnu,
FirstName = "Patrice", LastName = "Abanda"
},
new Personne()
{
PersonneID = 24739, Genre = Genres.Male,
FirstName = "Frank", LastName = "Thomasson"
}
};
for (int i = 0; i < 8; i++)
{
ListViewItem lviPersonne =
new ListViewItem(Personnes[i].FirstName);
lviPersonne.SubItems.Add(Personnes[i].LastName);
lviPersonne.SubItems.Add(Personnes[i].Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
}
}
Ceci produirait:

Pour vous aider à la création ou la gestion de tableaux,
le .NET Framework fournit la classe
Array. Chaque tableau que vous créez est dérivé de cette
classe. En conséquence, tous les tableaux de votre programme partagent de
nombreuses caractéristiques et ils obtiennent leur fondation de la classe
Array, qui contient des propriétés et méthodes. Une fois que
vous avez déclaré une variable de type tableau, elle a automatiquement accès
aux membres de la classe
Array. Par exemple, au lieu de compter le nombre d'éléments
d'un tableau, vous pouvez accéder à la propriété
Length de la variable. Voici un exemple:
private void Exercice_Load(object sender, EventArgs e)
{
int[] Numbres = new int[] { 20, 5, 83405, 734, 5 };
for (int i = 0; i < Numbres.Length; i++)
lbxNumbres.Items.Add(Numbres[i].ToString());
}
Dans les langues traditionnelles, lorsque vous déclarez une
variable de tableau, vous devez préciser le nombre d'éléments que le tableau
contiendra. Vous devez le faire surtout si vous déclarez la variable sans
l'initializer. Voici un exemple:
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private void Exercice_Load(object sender, EventArgs e)
{
var Personnes = new Personne[4];
}
}
}
Après avoir déclaré la variable, avant d'utiliser le
tableau, vous devez l'initialiser. Sinon, vous recevriez un message d'erreur.
Lors de l'initialization de la variable, vous pouvez indiquer le nombre d'éléments
que vous aviez spécifié. Pour illustrer ceci, considérons le programme
suivant:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private void Exercice_Load(object sender, EventArgs e)
{
var Personnes = new Personne[4];
Personnes[0] = new Personne()
{
PersonneID = 72947, FirstName = "Paulette",
LastName = "Cranston", Genre = Genres.Femelle
};
Personnes[1] = new Personne()
{
PersonneID = 70854, FirstName = "Harry",
LastName = "Kumar", Genre = Genres.Male
};
Personnes[2] = new Personne()
{
PersonneID = 27947, FirstName = "Jules",
LastName = "Davidson", Genre = Genres.Male
};
Personnes[3] = new Personne()
{
PersonneID = 62835, FirstName = "Leslie",
LastName = "Harrington", Genre = Genres.Inconnu
};
Personnes[4] = new Personne()
{
PersonneID = 92958, FirstName = "Ernest",
LastName = "Colson", Genre = Genres.Male
};
Personnes[5] = new Personne()
{
PersonneID = 91749, FirstName = "Patricia",
LastName = "Katts", Genre = Genres.Femelle
};
for (int i = 0; i < Personnes.Length; i++)
{
ListViewItem lviPersonne =
new ListViewItem(Personnes[i].FirstName);
lviPersonne.SubItems.Add(Personnes[i].LastName);
lviPersonne.SubItems.Add(Personnes[i].Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
}
}
Notez que la variable est déclarée pour ne contenir que 4
éléments, mais l'utilisateur tente d'accéder à un 5ème. Cela aboutirait à
une exception de type IndexOutOfRangeExcception.
L'une des caractéristiques les plus précieuses de la
classe
Array est qu'elle permet de "redimensionner" un
tableau, i.e. de changer le nombre de ses éléments. Donc, si vous découvrez
qu'un tableau qui a une taille plus petite que le nombre d'éléments que vous
souhaitez lui ajouter, vous pouvez augmenter sa capacité. Pour le faire, la
classe Array est équipée d'une méthode statique appelée Resize.
Sa syntaxe est la suivante:
public static void Resize<T>(ref T[] array, int newSize);
Comme vous pouvez le voir, il s'agit d'une méthode générique
qui prend deux arguments. Le premier argument est le nom de la variable que vous
voulez redimensionner. Il doit être passé par référence. Le deuxième
argument est la nouvelle taille que vous voulez donner au tableau. Voici un
exemple d'appel de cette méthode:
private void Exercice_Load(object sender, EventArgs e)
{
var Personnes = new Personne[4];
Personnes[0] = new Personne()
{
PersonneID = 72947, FirstName = "Paulette",
LastName = "Cranston", Genre = Genres.Femelle
};
Personnes[1] = new Personne()
{
PersonneID = 70854, FirstName = "Harry",
LastName = "Kumar", Genre = Genres.Male
};
Personnes[2] = new Personne()
{
PersonneID = 27947, FirstName = "Jules",
LastName = "Davidson", Genre = Genres.Male
};
Personnes[3] = new Personne()
{
PersonneID = 62835, FirstName = "Leslie",
LastName = "Harrington", Genre = Genres.Inconnu
};
Array.Resize<Person>(ref Personnes, 6);
Personnes[4] = new Personne()
{
PersonneID = 92958, FirstName = "Ernest",
LastName = "Colson", Genre = Genres.Male
};
Personnes[5] = new Personne()
{
PersonneID = 91749, FirstName = "Patricia",
LastName = "Katts", Genre = Genres.Femelle
};
for (int i = 0; i < Personnes.Length; i++)
{
ListViewItem lviPersonne =
new ListViewItem(Personnes[i].FirstName);
lviPersonne.SubItems.Add(Personnes[i].LastName);
lviPersonne.SubItems.Add(Personnes[i].Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
L'avantage de cette approche est que vous pouvez accéder à
la gamme d'un membre de la même classe ou même d'un autre fichier du même
programme.
|
Un Tableau Comme un Champ |
|
Comme cela a été fait précédemment, vous pouvez créer
un tableau dans une méthode. Un inconvénient de cette approche est que le
tableau ne peut être consulté qu'à l'intérieur de la méthode (ou de l'événement)
dans laquelle (lequel) il avait été créé. Comme alternative, vous pouvez déclarer
un tableau comme un membre d'une classe. Voici un exemple:
namespace Tableaux
{
public partial class Exercice : Form
{
Personne[] Personnes;
public Exercice()
{
InitializeComponent();
}
}
}
L'avantage de cette approche est que vous pouvez accéder à
la gamme d'un membre de la même classe ou même d'un autre fichier du même
programme. Après avoir déclaré la variable, vous pouvez l'initializer. Vous
pouvez le faire dans un constructeur ou dnas un événement qui serait appelé
avant tout autre événement qui utiliserait le tableau. Ce type
d'initialization se fait habituellement dans la clases du formulaire. Après
l'initialization de la variable, vous pouvez l'accéder dans une autre méthode
ou un autre événement du formulaire. Voici un exemple:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
Personne[] Personnes;
public Exercice()
{
InitializeComponent();
}
private void Exercice_Load(object sender, EventArgs e)
{
Personnes = new Personne[]
{
new Personne()
{
PersonneID = 72947, Genre = Genres.Femelle,
FirstName = "Paulette", LastName = "Cranston"
},
new Personne()
{
PersonneID = 70854, Genre = Genres.Male,
FirstName = "Harry", LastName = "Kumar"
},
new Personne()
{
PersonneID = 27947, Genre = Genres.Male,
FirstName = "Jules", LastName = "Davidson"
},
new Personne()
{
PersonneID = 62835, Genre = Genres.Inconnu,
FirstName = "Leslie", LastName = "Harrington"
},
new Personne()
{
PersonneID = 92958, Genre = Genres.Male,
FirstName = "Ernest", LastName = "Colson"
},
new Personne()
{
PersonneID = 91749, Genre = Genres.Femelle,
FirstName = "Patricia", LastName = "Katts"
},
new Personne()
{
PersonneID = 29749, Genre = Genres.Inconnu,
FirstName = "Patrice", LastName = "Abanda"
},
new Personne()
{
PersonneID = 24739, Genre = Genres.Male,
FirstName = "Frank", LastName = "Thomasson"
}
};
foreach (Personne pers in Personnes)
{
ListViewItem lviPersonne =
new ListViewItem(pers.PersonneID.ToString());
lviPersonne.SubItems.Add(pers.FirstName);
lviPersonne.SubItems.Add(pers.LastName);
lviPersonne.SubItems.Add(pers.Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
}
}
Un tableau peut être passé comme argument à une méthode.
Voici un exemple:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private void ArrayInitializer(Personne[] Personnes)
{
}
}
}
Dans la méthode, vous pouvez utilizer le tableau comme cela
vous semble bon. Par exemple, vous pouvez assigner des valeurs aux éléments du
tableau. Lors de l'appel d'une méthode qui est reçoit un tableau, vous pouvez
passer l'argument par référence de sorte qu'il reviendra avec de nouvelles
valeurs. Voici des exemples:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private void ArrayInitializer(ref Personne[] Personnes)
{
Personnes = new Personne[]
{
new Personne()
{
PersonneID = 72947, Genre = Genres.Femelle,
FirstName = "Paulette", LastName = "Cranston"
},
new Personne()
{
PersonneID = 7085, Genre = Genres.Male4,
FirstName = "Harry", LastName = "Kumar"
},
new Personne()
{
PersonneID = 27947, Genre = Genres.Male,
FirstName = "Jules", LastName = "Davidson"
},
new Personne()
{
PersonneID = 62835, Genre = Genres.Inconnu,
FirstName = "Leslie", LastName = "Harrington"
},
new Personne()
{
PersonneID = 92958, Genre = Genres.Male,
FirstName = "Ernest", LastName = "Colson"
},
new Personne()
{
PersonneID = 91749, Genre = Genres.Femelle,
FirstName = "Patricia", LastName = "Katts"
},
new Personne()
{
PersonneID = 29749, Genre = Genres.Inconnu,
FirstName = "Patrice", LastName = "Abanda"
},
new Personne()
{
PersonneID = 24739, Genre = Genres.Male,
FirstName = "Frank", LastName = "Thomasson"
}
};
}
private void ShowPersonnes(Personne[] Personnes)
{
foreach (Personne pers in Personnes)
{
ListViewItem lviPersonne =
new ListViewItem(pers.PersonneID.ToString());
lviPersonne.SubItems.Add(pers.FirstName);
lviPersonne.SubItems.Add(pers.LastName);
lviPersonne.SubItems.Add(pers.Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
private void Exercice_Load(object sender, EventArgs e)
{
Personne[] persons = new Personne[8];
ArrayInitializer(ref persons);
ShowPersonnes(persons);
}
}
}
Une méthode peut être créée pour retourner un tableau.
Lors de la création de la méthode, sur le côté gauche du nom de la méthode,
tapez le nom du type de méthode de la valeur de retour, y compris les crochets.
Dans la méthode, créez et initializez le tableau. Avant de quitter la méthode,
vous devez retourner le tableau. Voici un exemple:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
public Exercice()
{
InitializeComponent();
}
private Personne[] ArrayInitializer()
{
Personne[] Personnes = new Personne[]
{
new Personne()
{
PersonneID = 72947, Genre = Genres.Femelle,
FirstName = "Paulette", LastName = "Cranston"
},
new Personne()
{
PersonneID = 70854, Genre = Genres.Male,
FirstName = "Harry", LastName = "Kumar"
},
new Personne()
{
PersonneID = 27947, Genre = Genres.Male,
FirstName = "Jules", LastName = "Davidson"
},
new Personne()
{
PersonneID = 62835, Genre = Genres.Inconnu,
FirstName = "Leslie", LastName = "Harrington"
},
new Personne()
{
PersonneID = 92958, Genre = Genres.Male,
FirstName = "Ernest", LastName = "Colson"
},
new Personne()
{
PersonneID = 91749, Genre = Genres.Femelle,
FirstName = "Patricia", LastName = "Katts"
},
new Personne()
{
PersonneID = 29749, Genre = Genres.Inconnu,
FirstName = "Patrice", LastName = "Abanda"
},
new Personne()
{
PersonneID = 24739, Genre = Genres.Male,
FirstName = "Frank", LastName = "Thomasson"
}
};
return Personnes;
}
private void ShowPersonnes(Personne[] Personnes)
{
foreach (Personne pers in Personnes)
{
ListViewItem lviPersonne =
new ListViewItem(pers.PersonneID.ToString());
lviPersonne.SubItems.Add(pers.FirstName);
lviPersonne.SubItems.Add(pers.LastName);
lviPersonne.SubItems.Add(pers.Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
private void Exercice_Load(object sender, EventArgs e)
{
Personne[] persons = ArrayInitializer();
ShowPersonnes(persons);
}
}
}
|
Etude Pratique: En Créant un Tableau
|
|
- Pour créer une nouvelle classe, sur le menu principal, cliquez sur Projet
-> Ajouter une classe ...
- Définissez le nom comme Employee et appuyez Entrée
- Completez le fichier comme suit:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace YNB1
{
public class Employee
{
public int EmployeeNumber;
public string FirstName;
public string LastName;
public string Title;
public bool CanCreateNewAccount;
public double HourlySalary;
public string FullName
{
get { return LastName + ", " + FirstName; }
}
}
}
|
- Pour créer un formulaire qui sera utilisé pour afficher les informations
des employés, au menu principal, cliquez Projet -> Ajouter un formulaire
Windows
- Définissez le nom comme Employees et appuyez Entrée
- Créez le formulaire comme suit:
 |
| Control |
Text |
Name |
Other Properties |
| ListView |
 |
|
lvwEmployees |
FullRowSelect: True
GridLines: True
Modifiers: Internal
View: Details |
| Columns |
| (Name) |
Text |
TextAlign |
Width |
| colIndex |
# |
|
20 |
| colEmployeeNumber |
Empl # |
|
50 |
| colFirstName |
Prénom |
|
65 |
| colLastName |
Nom |
|
65 |
| colFullName |
Nom Complet |
|
95 |
| colTitle |
Titre |
|
145 |
| colHourlySalary |
Salaire |
Right |
50 |
|
| Button |
 |
Fermer |
btnFermer |
|
|
- Pour créer une nouvelle classe, sur le menu principal, cliquez sur Projet
-> Ajouter une classe ...
- Définissez le nom comme Client appuyez Entrée
- Completez le fichier comme suit:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace YNB1
{
public enum StatutCompte
{
Actif,
Suspendu,
Fermé
};
public class Client
{
public string CrééPar;
public DateTime DateCréée;
public string NomClient;
public string NuméroCompte;
public string TypeCompte;
public StatutCompte Statut;
}
}
|
- Pour créer une nouvelle classe, sur le menu principal, cliquez sur Projet
-> Ajouter une classe ...
- Définissez le nom comme Clients appuyez Entrée
- Completez le fichier comme suit:
 |
| Control |
Text |
Name |
Other Properties |
| ListView |
 |
|
lvwClients |
FullRowSelect: True
GridLines: True
Modifiers: Internal
View: Details |
| Columns |
| (Name) |
Text |
TextAlign |
Width |
| colIndex |
# |
|
20 |
| colCreatedBy |
Créé Par |
|
100 |
| colDateCreated |
Date Créée |
Center |
75 |
| colClientName |
Nom du Client |
|
120 |
| colAccountNumber |
# du Compte |
Center |
80 |
| colAccountType |
Type de Compte |
|
80 |
| coloStatutCompte |
Statut |
|
50 |
|
| Button |
 |
Close |
btnClose |
|
|
- Double-cliquez sur le bouton Fermer et mettre en œuvre son épreuve comme
suit:
private void btnFermer_Click(object sender, EventArgs e)
{
Close();
}
|
- Pour créer une nouvelle classe, sur le menu principal, cliquez sur Projet
-> Ajouter une classe...
- Définissez le nom comme TransactionCompte et appuyez
Entrée
- Completez le fichier comme suit:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace YNB1
{
public enum TypesTransactions
{
Dépot,
Retrait,
Transfert,
FraisMensuels,
Mandat,
Surcharge,
FraisTransaction
}
public class TransactionCompte
{
public DateTime DateTransaction;
public int ProcédéPar;
public string ProcédéPour;
public TypesTransactions TransactionType;
public double MontantDéposé;
public double MontantRetiré;
public double MontantFrais;
}
}
|
- Pour créer un nouveau formulaire qui montrera les transactions effectuées
sur les comptes des clients, sur le menu principal, cliquez sur Projet ->
Ajouter une formulaire Windows
- Définissez le nom comme TransactionsClients et
appuyez sur Entrée
- Créer le formulaire comme suit:
 |
| Control |
Text |
Name |
Other Properties |
| ListView |
 |
|
lvwTransactions |
FullRowSelect: True
GridLines: True
Modifiers: Internal
View: Details |
| Columns |
| (Name) |
Text |
TextAlign |
Width |
| colIndex |
# |
|
25 |
| colDateTransaction |
Date Trans |
Center |
80 |
| colProcessedBy |
Procédé Par |
Center |
80 |
| colProcessedFor |
Procédé Pour |
Center |
90 |
| colTransactionType |
Type Trans |
|
90 |
| colMontantDéposé |
Dépot |
Right |
|
| colMontantRetiré |
Retrait |
Right |
65 |
| colChargeAmount |
Frais |
Right |
50 |
|
| Button |
 |
Fermer |
btnFermer |
|
|
- Double-cliquez sur le bouton Fermer et changez son code comme
suit:
private void btnFermer_Click(object sender, EventArgs e)
{
Close();
}
|
- Pour créer une nouvelle classe, sur le menu principal, cliquez sur Projet
-> Ajouter une classe...
- Définissez le nom comme RapportsComptes et
appuyez Entrée
- Completez le fichier comme suit:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace YNB1
{
public static class RapportsComptes
{
public static Employee[] GetEmployees()
{
Employee[] StaffMembers = new Employee[]
{
new Employee()
{
EmployeeNumber = 74228, FirstName = "Chrissie",
LastName = "Nomads", Title = "General Manager",
CanCreateNewAccount = true, HourlySalary = 40.25
},
new Employee()
{
EmployeeNumber = 27905, FirstName = "Calvin",
LastName = "Braxton", Title = "Public Relations Manager",
CanCreateNewAccount = false, HourlySalary = 25.95
},
new Employee()
{
EmployeeNumber = 94805, FirstName = "Emilie",
LastName = "Pastore", Title = "Branch Manager",
CanCreateNewAccount = true, HourlySalary = 32.55
},
new Employee()
{
EmployeeNumber = 39850, FirstName = "Walter",
LastName = "Lemme", Title = "Accounts Manager",
CanCreateNewAccount = true, HourlySalary = 28.35
},
new Employee()
{
EmployeeNumber = 70594, FirstName = "Cecile",
LastName = "Richards", Title = "Accounts Representative",
CanCreateNewAccount = false, HourlySalary = 18.15
},
new Employee()
{
EmployeeNumber = 85285, FirstName = "Joan",
LastName = "Verrion", Title = "Accounts Representative",
CanCreateNewAccount = false , HourlySalary = 14.85
},
new Employee()
{
EmployeeNumber = 94852, FirstName = "Donald",
LastName = "Waters", Title = "Accounts Representative",
CanCreateNewAccount = false, HourlySalary = 16.45
}
};
return StaffMembers;
}
public static Client[] GetClients()
{
Client[] Clients = new Client[]
{
new Client()
{
CrééPar = "Lemme, Walter",
DateCréée = new DateTime(2007, 1, 16),
NomClient ="Louis George Berholdt",
NuméroCompte = "95-722947-93",
TypeCompte = "Checking", Statut = StatutCompte.Actif
},
new Client()
{
CrééPar = "Pastore, Emilie",
DateCréée = new DateTime(2007, 1, 18),
NomClient ="William Foster",
NuméroCompte = "62-384638-48",
TypeCompte = " Checking", Statut = StatutCompte.Actif
},
new Client()
{
CrééPar = "Lemme, Walter",
DateCréée = new DateTime(2007, 1, 18),
NomClient ="Catherine Hoods",
NuméroCompte = "92-318284-75",
TypeCompte = "Checking", Statut = StatutCompte.Actif
},
new Client()
{
CrééPar = "Lemme, Walter",
DateCréée = new DateTime(2007, 3, 26),
NomClient ="Harriett Cranston",
NuméroCompte = "17-490040-83",
TypeCompte = "Saving", Statut = StatutCompte.Actif
},
new Client()
{
CrééPar = "Nomads, Chrissie",
DateCréée = new DateTime(2007, 4, 04),
NomClient ="Janice Bonnie Weiss",
NuméroCompte = "58-405048-15",
TypeCompte = "Checking", Statut = StatutCompte.Actif
}
};
return Clients;
}
public static TransactionCompte[] GetTransactions()
{
TransactionCompte[] Transactions = new TransactionCompte[]
{
new TransactionCompte()
{
DateTransaction = new DateTime(2007, 1,16),
ProcédéPar = 39850,
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 325.50
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007, 1,18),
ProcédéPar = 94805,
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 550.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,18),
ProcédéPar = 39850,
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 975.35
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,22),
ProcédéPar = 94852,
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 100.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,22),
ProcédéPar = 70594,
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 122.48
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,22),
ProcédéPar = 94852,
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 214.86
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,22),
ProcédéPar = 85285,
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 140.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,24),
ProcédéPar = 85285,
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Mandat,
MontantRetiré = 116.24
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,24),
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.FraisTransaction,
MontantFrais = 1.45
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,30),
ProcédéPar = 70594,
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 40.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,30),
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,30),
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,1,30),
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,06),
ProcédéPar = 85285,
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 42.35
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,06),
ProcédéPar = 70594,
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 115.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,06),
ProcédéPar = 94852,
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 64.14
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,28),
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,28),
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Surcharge,
MontantRetiré = 35.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,28),
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,2,28),
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,3,15),
ProcédéPar = 70594,
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Retrait,
MontantRetiré = 200.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,3,26),
ProcédéPar = 39850,
ProcédéPour = "17-490040-83",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 1000.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,4),
ProcédéPar = 74228,
ProcédéPour = "58-405048-15",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 126.85
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,6),
ProcédéPar = 85285,
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 250.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,6),
ProcédéPar = 70594,
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 400.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,12),
ProcédéPar = 94852,
ProcédéPour = "95-722947-93",
TransactionType = TypesTransactions.Dépot,
MontantDéposé = 100.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,30),
ProcédéPour = "58-405048-15",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,30),
ProcédéPour = "62-384638-48",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,30),
ProcédéPour = "92-318284-75",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
},
new TransactionCompte()
{
DateTransaction = new DateTime(2007,4,30),
ProcédéPour = "17-490040-83",
TransactionType = TypesTransactions.FraisMensuels,
MontantFrais = 6.00
}
};
return Transactions;
}
}
}
|
- Accédez à la forme Centrale et ajoutez un bouton
- Changez les propriétés du bouton comme
suit:
(Nom): btnEmployees
Text: Employés
- Double-cliquez sur le bouton Employés et écrivez l'événement comme
suit:
private void btnEmployees_Click(object sender, EventArgs e)
{
int i = 1;
Employees frmEmployees = new Employees();
Employee[] StaffMembers = RapportsComptes.GetEmployees();
frmEmployees.lvwEmployees.Items.Clear();
foreach (Employee empl in StaffMembers)
{
ListViewItem lviEmployee = new ListViewItem(i.ToString());
lviEmployee.SubItems.Add(empl.EmployeeNumber.ToString());
lviEmployee.SubItems.Add(empl.FirstName);
lviEmployee.SubItems.Add(empl.LastName);
lviEmployee.SubItems.Add(empl.FullName);
lviEmployee.SubItems.Add(empl.Title);
lviEmployee.SubItems.Add(empl.HourlySalary.ToString("F"));
frmEmployees.lvwEmployees.Items.Add(lviEmployee);
i++;
}
frmEmployees.ShowDialog();
}
|
- Retournez à la forme Centrale ajoutez un bouton
- Changez les propriétés du bouton comme
suit:
(Name): btnClients
Texte: Clients
- Double-cliquez sur le bouton Clients et écrivez le code comme suit:
private void btnClients_Click(object sender, EventArgs e)
{
int i = 1;
Clients frmClients = new Clients();
Client[] Clients = RapportsComptes.GetClients();
frmClients.lvwClients.Items.Clear();
foreach (Client client in Clients)
{
ListViewItem lviClient = new ListViewItem(i.ToString());
lviClient.SubItems.Add(client.CrééPar);
lviClient.SubItems.Add(client.DateCréée.ToShortDateString());
lviClient.SubItems.Add(client.NomClient);
lviClient.SubItems.Add(client.NuméroCompte);
lviClient.SubItems.Add(client.TypeCompte);
lviClient.SubItems.Add(client.Statut.ToString());
frmClients.lvwClients.Items.Add(lviClient);
i++;
}
frmClients.ShowDialog();
}
|
- Rournez à la forme Centrale et ajoutez un bouton
- Changez les propriétés du bouton comme
suit:
(Name): btnTransactions
Texte: Transactions
- Double-cliquez sur le bouton Clients et écrivez le code comme suit:
private void btnTransactions_Click(object sender, EventArgs e)
{
int i = 1;
TransactionsClients frmTransactions = new TransactionsClients();
TransactionCompte[] Transactions = RapportsComptes.GetTransactions();
frmTransactions.lvwTransactions.Items.Clear();
foreach (TransactionCompte ActTrans in Transactions)
{
ListViewItem lviTransactions = new ListViewItem(i.ToString());
lviTransactions.SubItems.Add(
ActTrans.DateTransaction.ToString("dd-MMM-yyyy"));
if (ActTrans.ProcédéPar == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(ActTrans.ProcédéPour.ToString());
lviTransactions.SubItems.Add(ActTrans.ProcédéPour);
lviTransactions.SubItems.Add(ActTrans.TransactionType.ToString());
if (ActTrans.MontantDéposé == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.MontantDéposé.ToString("F"));
if (ActTrans.MontantRetiré == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.MontantRetiré.ToString("F"));
if (ActTrans.MontantFrais == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.MontantFrais.ToString("F"));
frmTransactions.lvwTransactions.Items.Add(lviTransactions);
i++;
}
frmTransactions.ShowDialog();
}
|
- Exécuter l'application pour voir le results
- Fermez les formes et revenez à votre environnement de programmation
|
Operations sur les Tableaux |
|
Parce qu'un tableau est tout d'abord une série d'objets ou
de valeurs, il existe plusieurs types d'informations que vous pouvez en obtenir.
Les opérations typiques sont:
- Ajouter des éléments au tableau
- Réorganizeationr la liste ou l'ordre des éléments dans le tablau
- Trouver si le tableau contient un certain element ou pas
- Si le tableau contient un certain élément, trouver l'indice de cet élément
Bien que vous puissiez créer votre propre routine pour
effectuer ces opérations, la classe
Array fournit la plupart des méthodes utiles pour obtenir les
informations nécessaires.
|
Etude Pratique: Pour Faire des Operations sur les Tableaux
|
|
- Pour créer un nouveau formulaire, dans le menu principal, cliquez sur Projet
-> Ajouter un formulaire Windows
- Spécifiez le nom comme TransactionsClient et appuyez sur Entrée
- Créer le formulaire comme suit:
 |
| Control |
Text |
Name |
Other Properties |
| Label |
 |
View Transactions For: |
|
|
| MaskedTextBox |
 |
|
txtAccountNumber |
Mask: 00-000000-00 |
| Button |
 |
Trouvez |
btnTrouver |
|
| ListView |
 |
|
lvwClients |
FullRowSelect: True
GridLines: True
View: Details |
| Columns |
| (Name) |
Text |
TextAlign |
Width |
| colIndex |
# |
|
25 |
| colDateTransaction |
Date Trans |
Center |
80 |
| colProcessedBy |
Procédé Par |
Center |
80 |
| colTransactionType |
Type Trans |
|
90 |
| colDeposit |
Dépot |
Right |
|
| colWithdrawal |
Retrait |
Right |
65 |
| colChargeAmount |
Frais |
Right |
50 |
|
| Label |
 |
Dépots Totaux |
|
|
| TextBox |
 |
|
txtDepotsTotaux |
0.00 |
| Label |
 |
Frais Totaux |
|
|
| TextBox |
 |
|
txtFraisTotaux |
0.00 |
| Label |
 |
Retraits Totaux |
|
|
| TextBox |
 |
|
txtRetraitsTotaux |
0.00 |
| Label |
 |
Balance |
|
|
| TextBox |
 |
|
txtBalance |
0.00 |
| Button |
 |
Fermer |
btnFermer |
|
|
- Save all
|
Ajouter un Element à un Tableau |
|
Nous avons vu que, en utilisant l'opérateur [], vous pouvez
ajouter un nouvel élément à un tableau. Pour soutenir cette opération, la
classe Array est équipée de la méthode
SetValue() qui est surchargée avec différentes versions.
Voici un exemple qui ajoute un élément à la troisième position du tableau:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
Personne[] Personnes;
public Exercice()
{
InitializeComponent();
}
private Personne[] ArrayInitializer()
{
Personnes = new Personne[8];
for(int i = 0; i < 8; i++)
{
Personnes[i] = new Personne();
Personnes[i].PersonneID = 0;
Personnes[i].FirstName = "";
Personnes[i].LastName = "";
Personnes[i].Genre = Genres.Inconnu;
}
return Personnes;
}
private void ShowPersonnes(Personne[] Personnes)
{
lvwPersonnes.Items.Clear();
foreach (Person pers in Personnes)
{
ListViewItem lviPerson =
new ListViewItem(pers.PersonneID.ToString());
lviPersonne.SubItems.Add(pers.FirstName);
lviPersonne.SubItems.Add(pers.LastName);
lviPersonne.SubItems.Add(pers.Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
private void Exercice_Load(object sender, EventArgs e)
{
Personne[] persons = ArrayInitializer();
ShowPersonnes(persons);
}
private void btnAdd_Click(object sender, EventArgs e)
{
Person pers = new Personne();
pers.PersonneID = int.Parse(txtPersonneID.Text);
pers.FirstName = txtFirstName.Text;
pers.LastName = txtLastName.Text;
if (cbxGenres.Text == "Male")
pers.Genre = Genres.Male;
else if (cbxGenres.Text == "Femelle")
pers.Genre = Genres.Femelle;
else
pers.Genre = Genres.Inconnu;
Personnes.SetValue(pers, 2);
ShowPersonnes(Personnes);
}
}
}
Lorsque la méthode Array.SetValue() est
appelée, elle remplace l'élément à la position indiquée.
|
Obtenant l'Elément d'un Tableau |
|
L'inverse d'ajout d'un élément à un tableau est d'en récupérer
un. Vous pouvez le faire avec l'opérateur []. Pour soutenir cette opération,
la classe Array est équipée de la méthode GetValue()
qui vient en différentes versions. Voici un exemple:
private void lvwPersonnes_ItemSelectionChanged(object sender,
ListViewItemSelectionChangedEventArgs e)
{
Person pers = (Person)Personnes.GetValue(e.ItemIndex);
txtPersonneID.Text = pers.PersonneID.ToString();
txtFirstName.Text = pers.FirstName;
txtLastName.Text = pers.LastName;
cbxGenres.Text = pers.Genre.ToString();
}
Lorsque vous appelez cette méthode, assurez-vous de fournir
un indice valable, si vous ne le faites pas, vous obtiendriez une exception
IndexOutOfRangeException.
|
Pour Vérifier l'Existence d'un Element |
|
Une fois que certains éléments ont été ajoutés à un
tableau, vous pouvez essayer de trouver un. L'un des moyens les plus
fondamentaux de la recherche d'un élément consiste à savoir si un certain élément
existe dans le tableau. Pour soutenir cette opération, la classe
Array est équipée d'une méthode appelée Exists
dont la syntaxe est la suivante:
public static bool Exists<T>(T[] array, Predicate<T> match);
C'est une méthode générique qui prend deux arguments. Le
premier est le tableau sur lequel vous cherchez l'élément. Le deuxième
argument est un délégué qui précise ou contient le critère à appliquer.
Voici un exemple:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Tableaux
{
public partial class Exercice : Form
{
Personne[] Personnes;
static int IDToFind;
public Exercice()
{
InitializeComponent();
}
private Personne[] ArrayInitializer()
{
Personnes = new Personne[]
{
. . . No Change
};
return Personnes;
}
private void ShowPersonnes(Personne[] Personnes)
{
lvwPersonnes.Items.Clear();
foreach (Person pers in Personnes)
{
ListViewItem lviPerson =
new ListViewItem(pers.PersonneID.ToString());
lviPersonne.SubItems.Add(pers.FirstName);
lviPersonne.SubItems.Add(pers.LastName);
lviPersonne.SubItems.Add(pers.Genre.ToString());
lvwPersonnes.Items.Add(lviPerson);
}
}
private void Exercice_Load(object sender, EventArgs e)
{
Personne[] persons = ArrayInitializer();
ShowPersonnes(persons);
}
private void btnAdd_Click(object sender, EventArgs e)
{
Person pers = new Personne();
pers.PersonneID = int.Parse(txtPersonneID.Text);
pers.FirstName = txtFirstName.Text;
pers.LastName = txtLastName.Text;
if (cbxGenres.Text == "Male")
pers.Genre = Genres.Male;
else if (cbxGenres.Text == "Femelle")
pers.Genre = Genres.Femelle;
else
pers.Genre = Genres.Inconnu;
Personnes.SetValue(pers, 2);
ShowPersonnes(Personnes);
}
private static bool IDExists(Person p)
{
if (p.PersonneID == Exercice.IDToFind)
return true;
else
return false;
}
private void btnExists_Click(object sender, EventArgs e)
{
IDToFind = int.Parse(txtPersonneID.Text);
if (Array.Exists<Person>(Personnes, IDExists))
MessageBox.Show("The person was found");
else
MessageBox.Show("The person was not found anywhere");
}
}
}


|
Etude Pratique: Pour Vérifier l'Existence d'un Elément
|
|
- Sur le compte des transactions, double-cliquez sur le bouton Chercher et
modifier le fichier de la façon suivante:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace YNB1
{
public partial class TransactionsClient : Form
{
static string NuméroCompte;
public TransactionsClient()
{
InitializeComponent();
}
private static bool NuméroCompteExiste(Client Client)
{
if (Client.NuméroCompte == NuméroCompte)
return true;
else
return false;
}
private void btnTrouver_Click(object sender, EventArgs e)
{
NuméroCompte = txtAccountNumber.Text;
Client[] Comptes = RapportsComptes.GetClients();
if (Array.Exists<Client>(Comptes, NuméroCompteExiste))
{
MessageBox.Show("Parfait");
}
else
MessageBox.Show("Il n'y a aucun numéro de compte " +
"comme celui que vous avez mis.");
}
}
}
|
- Affichez le formulaire central et complètez son design comme
suit:
 |
| Button |
Text |
Name |
 |
Employees |
btnEmployees |
 |
Clients |
btnClients |
 |
Transactions |
btnTransactions |
 |
Rapports |
btnRapports |
 |
Fermer |
btnFermer |
|
- Double-cliquez sur le bouton Clients Records et écrivez son code comme
suit:
private void btnRapports_Click(object sender, EventArgs e)
{
TransactionsClients transClients = new TransactionsClients();
transClients.ShowDialog();
}
|
- Retournez au formulaire Central et double-cliquez sur le bouton Fermer
- Ecrivez son code comme suit:
private void btnFermer_Click(object sender, EventArgs e)
{
Close();
}
|
- Exécutezr l'application pour la tester
- Fermez les formulaires et revenez à votre environnement de
programmation
Une des plus importantes opérations que vous pouvez
effectuer sur un tableau consiste en la recherche d'un élément particulier.
Pour vous aider à faire cela, la classe
Array est équipée de la méthode Find(). Sa
syntaxe est la suivante:
public static T Find<T>(T[] >array, Predicate<T> match);
Cette méthode générique prend deux arguments. Le premier
argument est le nom du tableau qui détient les éléments. Le deuxième
argument est un délégué qui a le critère à utiliser pour trouver
l'élément.
Voici un exemple:
private void btnFind_Click(object sender, EventArgs e)
{
IDToFind = int.Parse(txtPersonneID.Text);
Person pers = Array.Find<Person>(Personnes, IDExists);
if (pers != null)
{
txtFirstName.Text = pers.FirstName;
txtLastName.Text = pers.LastName;
cbxGenres.Text = pers.Genre.ToString();
}
}
|
Etude Pratique: Pour Trouver un Elément
|
|
- Accédez au code du fichier TransactionsClient.cs et
modifiez l'événement Click du bouton Trouver comme suit:
private void btnTrouver_Click(object sender, EventArgs e)
{
/* NuméroCompte = txtAccountNumber.Text;
Client[] Comptes = RapportsComptes.GetClients();
if (Array.Exists<Client>(Comptes, NuméroCompteExiste))
{
MessageBox.Show("Parfait");
}
else
MessageBox.Show("Il n'y a aucun numéro de compte " +
"comme celui que vous avez mis.");*/
double TotalDeposits = 0;
double TotalWithdrawals = 0;
double TotalCharges = 0;
double Balance;
NuméroCompte = txtAccountNumber.Text;
Client[] Accounts = RapportsComptes.GetClients();
TransactionCompte[] Trans = RapportsComptes.GetTransactions();
bool AccountFound =
Array.Exists<Client>(Accounts, NuméroCompteExiste);
if (AccountFound == true)
{
int i = 1;
lvwTransactions.Items.Clear();
foreach (TransactionCompte ActTrans in Trans)
{
if (ActTrans.ProcédéPour == NuméroCompte)
{
ListViewItem lviTransactions =
new ListViewItem(i.ToString());
lviTransactions.SubItems.Add(
ActTrans.DateTransaction.ToString("dd-MMM-yyyy"));
if (ActTrans.ProcédéPar == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.ProcédéPar.ToString());
lviTransactions.SubItems.Add(
ActTrans.TransactionType.ToString());
if (ActTrans.MontantDéposé == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.MontantDéposé.ToString("F"));
if (ActTrans.MontantRetiré == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.MontantRetiré.ToString("F"));
if (ActTrans.MontantFrais == 0)
lviTransactions.SubItems.Add("");
else
lviTransactions.SubItems.Add(
ActTrans.MontantFrais.ToString("F"));
lvwTransactions.Items.Add(lviTransactions);
i++;
}
}
foreach (ListViewItem lviTransaction in lvwTransactions.Items)
{
if (lviTransaction.SubItems[4].Text != "")
TotalDeposits = TotalDeposits +
double.Parse(lviTransaction.SubItems[4].Text);
if (lviTransaction.SubItems[5].Text != "")
TotalWithdrawals = TotalWithdrawals +
double.Parse(lviTransaction.SubItems[5].Text);
if (lviTransaction.SubItems[6].Text != "")
TotalCharges = TotalCharges +
double.Parse(lviTransaction.SubItems[6].Text);
}
Balance = TotalDeposits - (TotalWithdrawals + TotalCharges);
txtDepotsTotaux.Text = TotalDeposits.ToString("F");
txtRetraitsTotaux.Text = TotalWithdrawals.ToString("F");
txtFraisTotaux.Text = TotalCharges.ToString("F");
txtBalance.Text = Balance.ToString("F");
}
else
MessageBox.Show("Aucun client ne possède ce numéro de compte");
}
|
- Retour au formulaire et double-cliquez sur le bouton Fermer
- Ecrivez son code comme suit:
private void btnFermer_Click(object sender, EventArgs e)
{
Close();
}
|
- Executez l'application pour la tester
Downloads:
Tableaux
Yugo National Bank
|
|