IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Utiliser un fichier Excel pour exporter/importer des données, contrôler leur validité.


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut Utiliser un fichier Excel pour exporter/importer des données, contrôler leur validité.
    Bonjour,
    Je travail sur un site intranet de gestion des examens ,j'ai permet aux professeurs de télécharger le fichier excel pour le peupler avec des notes.
    Après je me suis bloquée comment récupérer ces fichiers ?et comment autoriser que les chiffres entre 0 et 20 dans le fichier excel ?ya t'il d'autres contraintes à prendre en compte?Si quelqu'un a déjà travailler sur ce genre de problème merci de me donner toutes les informations.
    Merci.

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,
    Citation Envoyé par pseudo88 Voir le message
    comment récupérer ces fichiers ?
    Que veux-tu dire? Tu ne les garde pas j'imagine. Tu les génère à la volée.
    Citation Envoyé par pseudo88 Voir le message
    comment autoriser que les chiffres entre 0 et 20 dans le fichier excel ?
    Si tu t'en sert comme moyen de saisir des données, il faut que tu fasses les vérifications nécessaires à la lecture du fichier.

    Donne nous plus d'informations sur le fonctionnement de ton application.

    A+

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Voilà au lieu d'utiliser la gridview pour insérer des notes (j'ai des centaines d'étudiants) j'ai pensé utilisé l'excel :
    1) permettre aux responsables de chaque module après authentification de télécharger le fichier excel (contenant les étudiants inscrits dans le module donné),ce dernier est généré par le code suivant:
    Num_inscription--------note_matière1----note_matière2
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
      cn.Open();
           SqlDataAdapter da = new SqlDataAdapter(@"DECLARE @MATIERE nvarchar(max)
    SELECT @MATIERE =
      STUFF(
      (
      select distinct ',[' + LIBELLE_MATIERE + ']'
      from MATIERE where CODE_MODULE =11
      for xml path('')
     ),
     1,1,'')
     
    DECLARE @SQL nvarchar(max)
    SELECT @SQL = N'
    select
     *
    from (
     
      SELECT     ETUDIANT.NUM_INSCRIPTION, ETUDIANT.NOM_PRENOM_ETUDIANT_ARABE,EXAMEN.CODE, 
     EXAMEN.NOTE, 
                         MATIERE.LIBELLE_MATIERE
    FROM         ETUDIANT INNER JOIN
                          EXAMEN ON ETUDIANT.NUM_INSCRIPTION = EXAMEN.NUM_INSCRIPTION INNER JOIN
                          CAPITALISE_MODULE ON 
                          ETUDIANT.NUM_INSCRIPTION = CAPITALISE_MODULE.NUM_INSCRIPTION INNER JOIN
                          MATIERE ON EXAMEN.CODE_MATIERE = MATIERE.CODE_MATIERE INNER JOIN
                          MODULE ON CAPITALISE_MODULE.CODE_MODULE = MODULE.CODE_MODULE 
                          AND MATIERE.CODE_MODULE = MODULE.CODE_MODULE
    WHERE      (CAPITALISE_MODULE.CODE_MODULE = 11) AND 
                          (CAPITALISE_MODULE.CODE_TYPE_RELATION_MODULE = 1)
    ) Data
    PIVOT (
     SUM(NOTE)
     FOR LIBELLE_MATIERE
     IN (
      ' + @MATIERE + '
     )
    ) PivotTable
    '
     
    exec sp_executesql @SQL
     
    ", cn);
           DataTable dt = new DataTable();
           da.Fill(dt);
           cn.Close();
     
           Response.Clear();
           Response.ContentType = "application/vnd.ms-excel";
           string sep = "";
           foreach (DataColumn dc in dt.Columns)
           {
                  Response.Write(sep + dc.ColumnName);
                  sep = "\t";
           }
           Response.Write("\n");
     
           int i;
           foreach (DataRow dr in dt.Rows)
           {
                  sep = "";
                  for (i = 0; i < dt.Columns.Count; i++)
                  {
                         Response.Write(sep + dr[i].ToString());
                         sep = "\t";
                  }
                  Response.Write("\n");
           }
     
    }
     
     
     
    }
    Mais dans ce code je sais pas comment :
    • ajouter la condition :les notes sont comprises entre 0 et 20.

    • calculer la moyenne de ce module qui est :sum(note*coeff)/sum(coeff)

    2)Permettant aux responsable de module de m'envoyer le fichier contenant ces données ( mais là je sais pas comment)
    3)Exploiter les données ,,en les envoyant vers la base de données pour calculer les moyennes .
    Voilà s'il ya mieu que sa merci de me guider je me sens perturbée ,et j'ai beaucoup besoin d'aide .
    Merci.

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    J'ai travaillé sur un sujet similaire. Pour y arriver, je te conseille de
    1. Créer un objet métier permettant d'insérer des données (une série de notes) dans ta base. Un truc du genre:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      public class Rating
      {
          public int RatingId { get; set; }
          public string StudentFullName { get; set; }
          public DateTime RatingDate { get; set; }
          public int RatingValue { get; set; }
      }
    2. Serializer une liste de cet objet au format XML
    3. L'envoyer à l'internaute
    4. Lui faire ouvrir avec Excel
    5. Le laisser modifier les valeurs
    6. Lui demander de le télécharger sur le serveur
    7. Le déserializer en une liste d'objet
    8. Mettre à jour ta base de données en fonction de cette liste
    Une petite recherche sur le forum et les tutos devraient beaucoup t'aider (http://philippe.developpez.com/artic...erexcelaspnet/).
    Rappelle-toi que Excel est facile à utiliser quand les données sont au format tabulaire (en ligne et en colonnes). Pour quelque chose de plus complexe, tu peux définir des plages aller chercher dans des cellules spécifiques...

    A+

  5. #5
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Merci Immobilis;
    Je vais me documenter sur chaque points étant tous nouveaux pour moi
    et je suis sur que je vais encore avoir besoin de votre aide.
    Merci

  6. #6
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonsoir,
    Je me plante dés le premier pas ,j'ai pas réusi à touver une documentation sur les objets métierq,j'ai pas de chance avec google.

  7. #7
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Ah? C'est pas compliqué un objet métier. Un Objet au sens programmation du terme tu vois ce que c'est? En .Net tout est objet (String, Label, List, ...). Ces objets font parti du Framework. Un objet métier est un objet que tu créés toi-même et qui répond à un besoin métier (lié à une problématique de ton business).

    Par exemple, il n'existe pas dans le Framework un objet Client ou Voiture ou Eleve ou Note. C'est à toi de créer les propriétés qui vont caractériser ton objet.

    Un bon point de départ est de te caler sur ta base de données. Suivant la qualité de celle-ci tu peux dire qu'une table correspond à un objet métier. Si tu as une table [STUDENT], tu peux créer un objet métier "Student" dont chaque propriété correspondra à un champ de la table.

    Tu utilises quelle version de Visual Studio?

    A+

  8. #8
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Je travail avec visual studio2008 et sqlserver2008,il me faut trois objets métiers:Etudiant,Examen,matière??

  9. #9
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par pseudo88 Voir le message
    il me faut trois objets métiers: Etudiant, Examen, matière??
    Cela me parait pas mal, mais à toi de voir. En général un objet représente une entité logique. Il n'y aurait pas forcement de logique à faire un objet "EtudiantExamen" unique pour représenter un étudiant et ses examens.

    Le nombre d'objets métier dépend de la complexité de ton application. Trois objets, ce n'est pas beaucoup.

    Citation Envoyé par pseudo88 Voir le message
    Je travaille avec visual studio2008 et sqlserver 2008
    Tu connais LINQ? Avec LINQ to SQL, tu définies tes objets métier directement à partir de la base de données. Il y a maintenant plein de moyen de créer des objets métier. Pas très facile de te conseiller car je ne connais pas ton niveau de compétence en matière de développement.

    Tu pourrais donner des détails sur la structure de ta base de données ou alors de ton GridView que tu utilises actuellement.

    A+

  10. #10
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Voilà je débute en développement c'est ma première application .
    J'ai les tables suivantes(pièce jointe) pour la partie examens:

  11. #11
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Bon, je te montre le concept:
    Voici un programme console. Tu sais en créer un dans Visual Studio? Fais un copié collé de ce code et exécute le. Le dossier "C:\Temp\" doit exister.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    using System;
    using System.Xml.Serialization;
    using System.Collections.Generic;
    using System.IO;
    using System.Xml;
    using System.Text;
     
    namespace ConsoleApplication
    {
        /// <summary>
        /// Objet metier etudiant
        /// </summary>
        public class Etudiant
        {
            public int NumInscription { get; set; }
            public string Nom { get; set; }
            public string Prenom { get; set; }
            public string CodeSexe { get; set; }
        }
     
        class Program
        {
            static void Main(string[] args)
            {
                XmlSerializer serializer = new XmlSerializer(typeof(List<Etudiant>));
                List<Etudiant> etudiants = new List<Etudiant>();
                FileInfo fi = new FileInfo(@"C:\Temp\Etudiants.xml");
     
                // Creation d'un étudiant. Peu être créé à partir d'une requête SQL
                Etudiant etudiant = new Etudiant() { NumInscription = 123, Nom = "Immobilis", Prenom = "", CodeSexe = "M" };
                // Ajout de l'étudiant à la liste
                etudiants.Add(etudiant);
                etudiants.Add(etudiant);
                etudiants.Add(etudiant);
     
                // Création du fichier XML correspondant à la liste d'etudiants
                using (MemoryStream mem = new MemoryStream())
                {
                    serializer.Serialize(mem, etudiants);
     
                    using (FileStream fs = new FileStream(fi.FullName, FileMode.Create))
                    {
                        using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))
                        {
                            sw.Write(Encoding.UTF8.GetString(mem.ToArray()));
                        }
                    }
                }
     
                // Destruction des objets
                etudiant = null;
                etudiants = null;
     
                // Lecture du fichier XML généré.
                // Recréation de la liste d'étudiant
                using (FileStream stream = fi.OpenRead())
                {
                    XmlReader reader = XmlReader.Create(stream);
                    string str = reader.ReadInnerXml();
     
                    if (serializer.CanDeserialize(reader))
                    {
                        etudiants = (List<Etudiant>)serializer.Deserialize(reader);
                    }
                }
     
                // Pour chaque étudiant de la liste on reconstitue des requêtes SQL de mise à jour.
                foreach (Etudiant e in etudiants)
                {
                    Console.WriteLine(string.Format("UPDATE ETUDIANT SET ETUDIANT_NOM = '{0}', ETUDIANT_PRENOM = '{1}', CODE SEXE = '{2}' WHERE NUM_INSCRIPTION = {3}", e.Nom, e.Prenom, e.CodeSexe, e.NumInscription));
                }
     
                Console.ReadLine();
            }
        }
    }
    Ce programme génère un fichier XML qui pourra être envoyé à l'internaute, qui le modifiera avec Excel, le téléchargera sur le serveur qui le lira et mettra à jour ta base de données.
    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
    19
    20
    21
    <?xml version="1.0"?>
    <ArrayOfEtudiant xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Etudiant>
        <NumInscription>123</NumInscription>
        <Nom>Immobilis</Nom>
        <Prenom />
        <CodeSexe>M</CodeSexe>
      </Etudiant>
      <Etudiant>
        <NumInscription>123</NumInscription>
        <Nom>Immobilis</Nom>
        <Prenom />
        <CodeSexe>M</CodeSexe>
      </Etudiant>
      <Etudiant>
        <NumInscription>123</NumInscription>
        <Nom>Immobilis</Nom>
        <Prenom />
        <CodeSexe>M</CodeSexe>
      </Etudiant>
    </ArrayOfEtudiant>
    Comprends-tu l'idée?

    Au fait quelle version de Excel vous avez?

    A+

  12. #12
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Merci infiniment Immobilis j'ai compris l'idée ,mais j'ai pas compris pourquoi passer par les objets métiers et xml pour arriver à excel .je peux passer par xml même si j'ai des centaines d'étudiants ?pourquoi ne pas envoyer un fichier excel directement ?
    Merci de me supporter .

  13. #13
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Citation Envoyé par pseudo88 Voir le message
    j'ai pas compris pourquoi par les objets métiers et xml pour arriver à excel .je peux passer par xml même si j'ai des centaines d'étudiants ?pourquoi ne pas envoyer un fichier excel directement?
    C'est plus simple. Il faut que les données soient présentées de manière a être facilement interprété par ton programme. Le plus simple est la serialization XML. Excel 2003 et 2007 supportent ça très bien. Ensuite c'est un jeu d'enfant.

  14. #14
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Je travail avec excel2003,les problèmes d'imposer les chiffres entre 0et 20 pour les notes et le calcul des moyennes automatiquement je sais pas comment le résoudre par les deux solutions .
    Merci

  15. #15
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Je crois que tu n'as pas compris le code que je te propose.

    As-tu essayé de le faire fonctionner?

    Avec une List<Etudiant> tu fais des tests sur les propriétés comme par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach (Etudiant e in etudiants)
    {
        if (e.Nom.ToUpperInvariant() == "IMMOBILIS")
            Console.WriteLine(string.Format("UPDATE ETUDIANT SET ETUDIANT_NOM = '{0}', ETUDIANT_PRENOM = '{1}', CODE SEXE = '{2}' WHERE NUM_INSCRIPTION = {3}", e.Nom, e.Prenom, e.CodeSexe, e.NumInscription));
    }
    Imposer des chiffres dans le fichier Excel n'a pas d'intérêt. La vérification doit être faite lors de la lecture du fichier par ton programme. C'est une question de sécurité. Il ne faut pas faire confiance aux données saisies par l'internaute.

    A+

  16. #16
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonjour,
    Je galère avec xml généré par sql ,je pense que je vais retourner vers 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    public partial class Etudiant11 : System.Web.UI.Page  
      {  
     
     
          protected void Page_Load(object sender, EventArgs e)  
           {  
     
           }  
            public class Etudiant  
           {  
              public int NumInscription { get; set; }  
               public string Nom { get; set; }  
              public string Prenom { get; set; }  
               public string CodeSexe { get; set; }  
           }  
     
          protected void Button1_Click(object sender, EventArgs e)  
           {  
              XmlSerializer serializer = new XmlSerializer(typeof(List<Etudiant>));  
              List<Etudiant> etudiants = new List<Etudiant>();  
     
              FileInfo fi = new FileInfo(@"C:\Temp\Etudiants.xml");  
     
               // Creation d'un étudiant. Peu être créé à partir d'une requête SQL   
               SqlConnection cnx = (SqlConnection)Application[@"Data Source=.\SQLEXPRESS;UID=sa;Password=****;Initial Catalog=scolarite"];  
               cnx.Open();  
              string query = "(@"DECLARE @MATIERE nvarchar(max)
    SELECT @MATIERE =
      STUFF(
      (
      select distinct ',[' + LIBELLE_MATIERE + ']'
      from MATIERE where CODE_MODULE =11
      for xml path('')
     ),
     1,1,'')
     
    DECLARE @SQL nvarchar(max)
    SELECT @SQL = N'
    select
     *
    from (
     
      SELECT     ETUDIANT.NUM_INSCRIPTION, ETUDIANT.NOM_PRENOM_ETUDIANT_ARABE,EXAMEN.CODE, 
     EXAMEN.NOTE, 
                         MATIERE.LIBELLE_MATIERE
    FROM         ETUDIANT INNER JOIN
                          EXAMEN ON ETUDIANT.NUM_INSCRIPTION = EXAMEN.NUM_INSCRIPTION INNER JOIN
                          CAPITALISE_MODULE ON 
                          ETUDIANT.NUM_INSCRIPTION = CAPITALISE_MODULE.NUM_INSCRIPTION INNER JOIN
                          MATIERE ON EXAMEN.CODE_MATIERE = MATIERE.CODE_MATIERE INNER JOIN
                          MODULE ON CAPITALISE_MODULE.CODE_MODULE = MODULE.CODE_MODULE 
                          AND MATIERE.CODE_MODULE = MODULE.CODE_MODULE
    WHERE      (CAPITALISE_MODULE.CODE_MODULE = 11) AND 
                          (CAPITALISE_MODULE.CODE_TYPE_RELATION_MODULE = 1)
    ) Data
    PIVOT (
     SUM(NOTE)
     FOR LIBELLE_MATIERE
     IN (
      ' + @MATIERE + '
     )
    ) PivotTable
    '
     
    exec sp_executesql @SQL
    ";  
            SqlCommand cmd = new SqlCommand(query, cnx);  
          SqlDataReader readere = cmd.ExecuteReader();  
     
               readere.Read();  
     
             Etudiant etudiant = new Etudiant() { NumInscription = Convert.ToInt32(readere["NUM_INSCRIPTION"].ToString()), Nom = readere["NOM_PRENOM_ETUDIANT"].ToString(),  CodeSexe = readere["CODE_SEXE"].ToString() };
             etudiants.Add(etudiant);
     
             readere.Close();  
             // Ajout de l'étudiant à la liste   
     
     
              // Création du fichier XML correspondant à la liste d'etudiants   
              using (MemoryStream mem = new MemoryStream())  
               {  
                  serializer.Serialize(mem, etudiants);  
     
                  using (FileStream fs = new FileStream(fi.FullName, FileMode.Create))  
                {  
                    using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))  
                      {  
                           sw.Write(Encoding.UTF8.GetString(mem.ToArray()));  
                      }  
                   }  
             }  
     
              // Destruction des objets   
              etudiant = null;  
               etudiants = null;  
     
              // Lecture du fichier XML généré.   
              // Recréation de la liste d'étudiant   
             using (FileStream stream = fi.OpenRead())  
              {  
                  XmlReader reader = XmlReader.Create(stream);  
                  string str = reader.ReadInnerXml();  
     
                 if (serializer.CanDeserialize(reader))  
                  {  
                      etudiants = (List<Etudiant>)serializer.Deserialize(reader);  
                 }  
            }  
     
             // Pour chaque étudiant de la liste on reconstitue des requêtes SQL de mise à jour.   
            foreach (Etudiant ee in etudiants)  
             {  
               Response .Write  (string.Format("UPDATE ETUDIANT SET ETUDIANT_NOM = '{0}', ETUDIANT_PRENOM = '{1}', CODE SEXE = '{2}' WHERE NUM_INSCRIPTION = {3}", ee.Nom, ee.Prenom, ee.CodeSexe, ee.NumInscription));  
              }  
     
     
         }
    Merci .

  17. #17
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Tu as une erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string query = "(@"DECLARE @MATIERE nvarchar(max)
    SELECT @MATIERE =
    La coloration syntaxique du forum te le montre.

    Lis aussi ceci:

    Un conseil qui vaut de l'or: fais une procédure stockée.

  18. #18
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 40
    Points
    40
    Par défaut
    Bonsoir,
    Désolée pour cette réponse tardive j'avais des examens .
    1J'ai utilisé excel (j'ai pas de chance avec le code d'xml et j'ai pas beaucoup de temps )
    Voilà ce que j'ai fait:
    • en cliquant sur un bouton le responsable de module authentifié telecharge le fichier excel à remplir par des notes

    • Il upload le fichier au serveur

    après je me suis bloquée :est ce que je dois lui permettre de télécharger le fichier et ensuite cliquer sur un bouton pour importer les données au serveur?
    ou ya une autre solution.
    je veux que l'utilisateur importe les données à la base.
    merci

Discussions similaires

  1. [XL-2010] Requête Excel pour l'extraction des données à partir des autre fichiers Excel
    Par jihed saidaoui dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/03/2015, 09h23
  2. Utiliser un fichier EXCEL pour modifier une bdd
    Par seraphon91 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 26/06/2014, 17h23
  3. utilisation de fichiers excel pour générer des rapports
    Par infoest dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 01/07/2013, 13h52
  4. Comment utiliser un fichier Excel pour remplir un ComboBox
    Par Heureux-oli dans le forum Contribuez
    Réponses: 0
    Dernier message: 29/08/2007, 14h39
  5. [3D] Export/Import des données graphics
    Par mister3957 dans le forum Développement 2D, 3D et Jeux
    Réponses: 13
    Dernier message: 03/02/2006, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo