Bonjour,
Je dois mettre à jour dans le cadre de mon stage un programme permettant de récupérer les informations d'une liste d'objets et de l'importer dans la base de données en ajoutant comme fichier source un Excel.
J'ai récupéré les données dans un datatable grâce à la dll Aspose.Cells. Pour l'insertion des données dans la base de données, j'utilise la dll EntityFramework. J'ai à ma disposition une classe Object contenant les différentes propriétés. Je dois donc insérer les données dans cet objet que j'importe dans la base de données grâce à EntityFramework.
Comme ces objets ont plus de 140 propriétés, je souhaite utilisé la Reflection et récupéré dynamiquement la propriété de l'objet correspondant à la colonne du Excel. J'arrive à récupérer la PropertyInfo de la propriété voulue, mais mon problème est que je n'arrive pas à rentrer des données à l'intérieur.
Voici mon code actuel:
Je boucle en foreach dans mon datatable pour récupérer les lignes de données. Ensuite je boucle en for la liste des propriétés correspondant au colonne du fichier (j'ai du récupérer séparément les en-têtes à cause de la forme du fichier Excel).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 try { foreach (DataRow row in dataTable.Rows) { for (int indexHeader = 0; indexHeader < 140; indexHeader++) { PropertyInfo currentProperty = obj.GetType().GetProperty(Headers[indexHeader]); if (currentProperty != null) { // Insertion dans la propriété } } } } // ...
Voilà
Je vous remercie d'avance du coup de main
Cordialement
Faboogy
Partager