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 :

Remplir une table à partir d'un fichier.


Sujet :

ASP.NET

  1. #1
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut Remplir une table à partir d'un fichier.
    Bonjour,
    Je pense depuis quelques jours à une fonctionnalité pour mon application afin de la rendre plus performante mais je sais pas si cela est réalisable.

    Voila mon appli propose à un utilisateur d'insérer des mobiles (par des textbox et des boutons) bien entendu je fais toutes les vérifications derrieres.

    Mon idée c'est de permettre à l'utilisateur s'il a plusieurs mobiles à insérer de charger un fichier (disons excel ou texte) rempli de ses mobiles afin que mon application le recupère et les insèrent en base.

    J'utilise vb.net et sqlserver 2000 sur mon server.

    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 512
    Points
    9 512
    Par défaut
    Salut,

    Si un fichier Excel présente des données sous forme d'un tableau c'est très facile à lire. Cela se parcours comme un table de base de données. La syntaxe est légèrement différente de celle d'une requête SQL mais c'est pas difficile à comprendre. Il faut juste utiliser la bonne chaine de connexion.
    Je suis certain qu'il y a beaucoup d'exemples dans le forum.

    A+

  3. #3
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Il faut juste utiliser la bonne chaine de connexion.
    Exuse moi mais j'ai un peu du mal à te suivre...

    Mon problème (véritable) c'est enfaite comment puis-je donner à l'application le fichier à parcourir? (S'il existe une fonction qui le ferai du client vers le server)

    Je te remercie encore pour ton aide

  4. #4
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    J'ai jamais réalisé un truc pareil et vu comment je décrit cela j'ai même jamais vu ce genre de chose dans une application web c'est pourquoi je m'interroge un peu sur la réussite d'une telle fonctionnalité.

    Sous sql server on peut avoir des mobiles sur un fichier txt (par exemple) et avec l'interface aller insérer ses mobiles dans une table depuis le fichier.

    C'est un peu ce que je voudrais reproduire. Donné la possibilité à mon application web (asp.net vb) de prendre un fichier contenant des mobiles et les insérer dans une table en base.

    En espérant avoir été plus claire

    Merci

  5. #5
    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 512
    Points
    9 512
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    En espérant avoir été plus claire
    C'était très clair.

    J'ai du faire ce genre de fonctionnalités. Pour la réaliser, j'ai utilisé les fichiers XML et Excel 2007 (avec les versions antérieures c'est pas terrible).

    Dis moi quelles versions de Excel vous utilisez?

    A+

  6. #6
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    heu de grâce épargne moi le Vous, je me sens un peu comme Sarkozy là

    J'utilise excel 2007

  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 512
    Points
    9 512
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    heu de grâce épargne moi le Vous, je me sens un peu comme Sarkozy là
    C'était un "vous" qui désignait ta boite
    Citation Envoyé par SonnyFab Voir le message
    J'utilise excel 2007
    Bon, ben c'est parfait.

    Voilà comment faire:
    • Créer un objet métier qui reflète la structure de la table
    • Faire une liste de cet objet
    • Sérialiser la liste pour obtenir un fichier XML
    • L'envoyer à l'internaute qui pourra l'ouvrir avec un fichier Excel
    • L'internaute le modifie, ajoute des enregistrements sans toucher à la structure
    • L'internaute envoi le fichier sur le serveur grâce à un bouton "FileUpload"
    • L'application sauvegarde le fichier XML dans le repertoire temporaire
    • L'application déserialise le fichier XML en un liste d'objets métiers
    • L'application met à jour la base à partir de cette liste
    Ca a l'air compliqué mais en fait, c'est très simple. Tu peux regarder ces discussions:



    A+

  8. #8
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Ca a l'air compliqué...
    Tu rigoles ou quoi? C'est du chinois...
    ...mais en fait, c'est très simple
    Ah ok je te fais confiance...

    Ok merci Immobilis je me lance tout de suite sur tes liens merci encore
    Je te donne l'évolution tout à l'heure

  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 512
    Points
    9 512
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    Ok merci Immobilis je me lance tout de suite sur tes liens merci encore
    Je te donne l'évolution tout à l'heure
    Essaye surtout celui-là: http://www.developpez.net/forums/d92...e/#post5245668

  10. #10
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Immobilis?
    J'arrète pas de lire les posts mais même à la première étape j'ai une panoplie de questions.

    Si tu es disponible on peut allez étape par étape s'il te plait?
    - Créer un objet métier qui reflète la structure de la table

    La structure de la table qui recevra les données?
    Donc cet objet, le nombre des variables devra être égal au nombre de clonne de ma table c'est sa?

    Pour plus de détails ma table contient 4 colonnes.

  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 512
    Points
    9 512
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    Donc cet objet, le nombre des variables devra être égal au nombre de clonne de ma table c'est sa?
    C'est presque ça. Le nombre de propriétés "devra être égal au nombre de clonne de" ta table.

  12. #12
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Ok voici ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [Lecode] [varchar](3) NOT NULL,
    [Mobile] [varchar](16) NOT NULL,
    [Status] integer  NULL,
    [IPFee] [decimal](15, 4) NULL,
    J'ai créé mon objet métier en vb suivant ton code en c#:
    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
    	Public Class MonMetier
    	Public Property LeCode() As [String]
    		Get
    			Return m_LeCode
    		End Get
    		Set
    			m_LeCode = Value
    		End Set
    	End Property
    	Private m_LeCode As [String]
    	Public Property Mobile() As String
    		Get
    			Return m_Mobile
    		End Get
    		Set
    			m_Mobile = Value
    		End Set
    	End Property
    	Private m_Mobile As String
    	Public Property Status() As Integer
    		Get
    			Return m_Status
    		End Get
    		Set
    			m_Status = Value
    		End Set
    	End Property
    	Private m_Status As Integer
    	Public Property IPFee() As Double
    		Get
    			Return m_IPFee
    		End Get
    		Set
    			m_IPFee = Value
    		End Set
    	End Property
    	Private m_IPFee As Double
    End Class
    et sa compile.
    Je voudrais quand même te rappeller que je sais pas pour l'instant ce que je fais, je suis juste ton plan !

    Ok sinon on continue si tu veux bien qu'esce que t'entends par Faire une liste de cet objet s'il te plait?

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 7
    Points : 13
    Points
    13
    Par défaut
    Le fichier d'entré doit être formaté dans un certain format ex : csv, xml
    Puis il faut l'ouvrir dans un stream pour récupérer les données et les insérées dans la bdd...

  14. #14
    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 512
    Points
    9 512
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    Ok sinon on continue si tu veux bien qu'esce que t'entends par Faire une liste de cet objet s'il te plait?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    List<MonMetier> list = new List<MonMetier>()
    MonMetier metier = new MonMetier()
    // Assignement des propriétés
    list.Add(metier)
    list.Add(metier)
    list.Add(metier)
    list.Add(metier)
    A+

  15. #15
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Immobilis ton talent de developpeur n'est plus a démontrer, c'est sur que dans une autre vie t'étais un microprocesseur

    Ne le prend pas mal sa n'a rien de péjoratif au contraire , j'aimerais aussi s'il te plait comprendre ce que vous faites ( Avec l'aide de zavgan que je remercie au passage )

    La j'ai créé un metier mais cela permettra de faire quoi?
    Et a quoi sert ce code que tu viens de poster à ce stade s'il te plait?
    Le fichier d'entré doit être formaté dans un certain format ex : csv, xml
    Je propose un fichier au client ou c'est lui qui le créé?
    Puis il faut l'ouvrir dans un stream pour récupérer les données et les insérées dans la bdd...
    Je pense que lorsque je serais à ce stade je vous ferais de gros bisous!!

    Désolé encore pour les questions pêle-mêle

  16. #16
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    -Faire une liste de cet objet
    -Sérialiser la liste pour obtenir un fichier XML
    Déja ce sont des expressions techniques mais c'est génial parceque je me rends compte que j'entre dans l'univers des supers développeurs.

    Ok pour revenir selon les étapes que tu m'as définie,
    je sais pas où placer la liste de l'objet dans la page load ou bien ...?
    Enfin faire une liste de l'objet signifie créer un fichier xml avec les données de l'objet précedent?

  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 512
    Points
    9 512
    Par défaut
    Citation Envoyé par SonnyFab Voir le message
    Déja ce sont des expressions techniques mais c'est génial parceque je me rends compte que j'entre dans l'univers des supers développeurs.
    Bienvenu
    Citation Envoyé par SonnyFab Voir le message
    je sais pas où placer la liste de l'objet dans la page load ou bien ...?
    A toi de voir où tu veux placer ce code
    Citation Envoyé par SonnyFab Voir le message
    Enfin faire une liste de l'objet signifie créer un fichier xml avec les données de l'objet précedent?
    Non, une liste d'objets reste une liste d'objets. C'est la sérialisation qui va générer un flux Xml.
    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
     
    // Creation de la liste d'objets
    List<MonMetier> metiers = new List<MonMetier>();
    MonMetier metier = new Metier();
    metiers.Add(metier);
    metiers.Add(metier);
    metiers.Add(metier);
     
    // Creation du serialiseur qui va transformer la liste d'objets en Xml
    XmlSerializer serializer = new XmlSerializer(typeof(List<MonMetier>));
     
    // Ouverture d'un espace mémoire pour stocker le flux Xml
    using (MemoryStream mem = new MemoryStream())
    {
    	// Mise en mémoire de la sérialisation de la liste d'étudiants
    	serializer.Serialize(mem, metiers);
     
    	// Creation du fichier
    	using (FileStream fs = new FileStream(@"C:\Temp\MonFichier.xml", FileMode.Create))
    	{
    		// Creation d'un flux pour écrire dans le fichier
    		using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))
    		{
    			// Ecriture du contenu de la mémoire dans le fichier (la mémoire contient le flux Xml)
    			sw.Write(Encoding.UTF8.GetString(mem.ToArray()));
    		}
    	}
    }
    A+

  18. #18
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    T'es trop sympa immobilis merci pour la patience.

    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
    		' Creation de la liste d objets'
    Dim metiers As New List(Of MonMetier)()
    Dim metier As MonMetier = New Metier()
    metiers.Add(metier)
    metiers.Add(metier)
    metiers.Add(metier)
     
    ' Creation du serialiseur qui va transformer la liste d objets en Xml'
    Dim serializer As New XmlSerializer(GetType(List(Of MonMetier)))
     
    ' Ouverture d un espace mémoire pour stocker le flux Xml'
    Using mem As New MemoryStream()
    	' Mise en mémoire de la sérialisation de la liste d étudiants'
    	serializer.Serialize(mem, metiers)
     
    	' Creation du fichier'
    	Using fs As New FileStream("C:\Temp\MonFichier.xml", FileMode.Create)
    		' Creation d un flux pour écrire dans le fichier'
    		Using sw As New StreamWriter(fs, Encoding.UTF8)
    			' Ecriture du contenu de la mémoire dans le fichier (la mémoire contient le flux Xml)'
    			sw.Write(Encoding.UTF8.GetString(mem.ToArray()))
    		End Using
    	End Using
    End Using
    Je l'ai mis dans ma page_load mais j'ai une erreur:
    'List' non défini
    Au niveau de:
    Dim metiers As New List(Of MonMetier)()

    Je comprends pas mais je te suis...

  19. #19
    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 512
    Points
    9 512
    Par défaut
    as-tu importé l'espace de noms: System.Collections.Generic?

  20. #20
    Débutant   Avatar de SonnyFab
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 498
    Points : 213
    Points
    213
    Par défaut
    Je me demandais aussi, je viens de tout importer jusqu'à la bibliothèque System.Xml.Serialization, j'ai du modifier aussi le chemin C:\Temp

    Enfait comme je fais des tests je suis revenu en local pour ne pas avoir des problèmes sur le sever et en local se repertoire n'existe pas j'ai alors redirigé cela vers un autre chemin dans inetpub/wwwroot.

    Le fichier xml est créé (Merci )
    Sauf que entre les balises MonMetier il n'y'a que:
    Status>0</Status>
    <IPFee>0</IPFee>
    Pourtant j'ai précisé 4 colonnes je crois...

    Et esque le fait d'avoir redirigé cela faire un autre repertoire aura un incident majeur?

Discussions similaires

  1. remplir une table à partir d'un fichier .txt
    Par intel42 dans le forum Débuter
    Réponses: 1
    Dernier message: 06/02/2012, 12h01
  2. Remplir une table à partir d'un fichier .txt
    Par deubelte dans le forum Access
    Réponses: 2
    Dernier message: 06/11/2009, 10h58
  3. [AC-2003] Requête pour remplir une table à partir d'un fichier Excel
    Par olivier777 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/09/2009, 10h52
  4. Réponses: 8
    Dernier message: 11/08/2006, 09h30

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