Nous allons maintenant créer notre entité « Personne ». Le principe va être globalement le même que pour l’entité « Film », nous expliquerons donc cela plus rapidement que précédemment dans ce cours.
Créer une entité avec BCS

Si vous avez le moindre doute, n’hésitez pas à relire la méthode employée pour créer l’entité « Film ».
Retournez donc dans votre « BCS » et faites glisser une nouvelle entité que vous nommerez « Personne ». Ajoutez également un identificateur de type « System.Int32 » que vous nommerez « Id_personne ». Ajoutez ensuite une nouvelle méthode de type « Specific Finder ». Modifiez ensuite le « Type Descriptor » pour que celui-ci colle à la définition de la classe « Personne ». Au final, celui-ci devrait ressembler à ceci : voir figure 13.
Notez que le « Type descriptor Id » a sa propriété « Identifier » définit sur « Id_personne ». N’oubliez pas non plus de définir le « Type Name » du « Type Descriptor Personne » en le redirigeant vers la classe « Personne » de votre projet.
Créez ensuite une méthode de type « ReadList ». Modifiez sa propriété « Name » sur « AllPersonnes » et « Default Complete Name » sur « Toutes les personnes ».
Ouvrez ensuite la classe « DbPersonne » et ajoutez les clauses suivantes :
using System.Data;
using MySql.Data.MySqlClient;
Implémentez ensuite les deux fonctions suivantes :
public static List GetAllPersonnes()
{
List personnes = null;
using (DataSet dataSet = new DataSet())
{
using (MySqlConnection connection = new MySqlConnection(Helper.cString))
{
connection.Open();
using (MySqlDataAdapter adapter = new MySqlDataAdapter(« SELECT id_personne, nom, prenom, image FROM personnes », connection))
{
adapter.Fill(dataSet, « Personnes »);
}
}
if (dataSet.Tables[« Personnes »].Rows.Count == 0)
throw new Exception(« Aucune personne »);
personnes = new List(dataSet.Tables[« Personnes »].Rows.Count);
foreach (DataRow row in dataSet.Tables[« Personnes »].Rows)
{
personnes.Add(new Personne
{
Avatar = row[« image »].ToString(),
Id = int.Parse(row[« id_personne »].ToString()),
Nom = row[« nom »].ToString(),
Prenom = row[« prenom »].ToString()
});
}
}
return personnes;
}
public static Personne GetPersonneById(int id)
{
Personne personne = null;
using (DataSet dataSet = new DataSet())
{
using (MySqlConnection connection = new MySqlConnection(Helper.cString))
{
connection.Open();
using (MySqlDataAdapter adapter = new MySqlDataAdapter(« SELECT nom, prenom, image FROM personnes WHERE id_personne = » + id, connection))
{
adapter.Fill(dataSet, « Personne »);
}
}
if (dataSet.Tables[« Personne »].Rows.Count == 0)
throw new Exception(« Aucune personne »);
DataRow row = dataSet.Tables[« Personne »].Rows[0];
personne = new Personne
{
Avatar = row[« image »].ToString(),
Id = id,
Nom = row[« nom »].ToString(),
Prenom = row[« prenom »].ToString()
};
}
return personne;
}
Ces fonctions utilisent la même logique que les fonctions utilisées pour récupérer les films. Référez-vous donc à ces explications pour comprendre ces deux fonctions. Revenez maintenant sur votre « BCS », faites un clic droit sur la fonction « ReadItem » et sélectionnez « View Code ». Tapez alors :
return DbPersonne.GetPersonneById(id_personne);
Faites de même pour la fonction « AllPersonnes » et tapez :
return DbPersonne.GetAllPersonnes();
Vous pouvez maintenant déployer votre solution et refaire les mêmes étapes que précédemment. Ajoutez donc une « WebPart Business Data list » sur votre page, liez-la à l’entité que vous venez de créer, cachez la « Toolbar » ainsi que le « Chrome ». Enfin, modifiez les permissions de votre entités et actualisez votre page.
Téléchargez cette ressource

État des lieux de la réponse à incident de cybersécurité
Les experts de Palo Alto Networks, Unit 42 et Forrester Research livrent dans ce webinaire exclusif leurs éclairages et stratégies en matière de réponses aux incidents. Bénéficiez d'un panorama complet du paysage actuel de la réponse aux incidents et de sa relation avec la continuité de l'activité, des défis auxquels font face les entreprises et des tendances majeures qui modèlent ce domaine. Un état des lieux précieux pour les décideurs et professionnels IT.
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Afficher les icônes cachées dans la barre de notification
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- IBM i célèbre ses 25 ans
Les plus consultés sur iTPro.fr
- Ransomware : persistance des cyberattaques à l’échelle mondiale
- Cybersécurité : l’IA générative rebat les cartes du cybercrime
- Le World Cyber Ranking, 1er classement mondial de la cybersécurité des entreprises
- Comment le Quarter Plan permet d’aligner IT et Métiers pour délivrer
- Explosion des attaques d’ingénierie sociale en 2025
