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 :

Intégrer Sql Server Intégration services (SSIS) dans asp.net (c#)


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut Intégrer Sql Server Intégration services (SSIS) dans asp.net (c#)
    Bonjour,
    J'aimerai intégrer des données XML et Excel dans une base données SQL Server 2005 grâce à un interface asp. net (c#) notant que l'interface contient un FileUplod pour donner le chemin du fichier et un button ok qui doit intégrer les données XML et Excel dans la base données. Prière de m'aider s'il vous plaît ou bien m'indiquer s'il y a une autre solution pour faire cela. Merci beaucoup d'avance .

  2. #2
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    Et que désires tu comme info?

    On ne va pas te donner la solution complète, surtout en période d'examen

    Si tu dois créer une interface permettant de récupérer le contenu de fichiers:
    effectivement un fileupload pour avoir les fichiers.
    Pour le xml par exemple, il y a de nombreux tuto sur le web pour ouvrir et parcourir les fichiers.
    Tu peux également en Excell parcourir un fichier, récupérer un tableau à l'intérieur de celui-ci, ...

    Si tu nous en dis plus sur le point où tu bloques, on te donnera des pistes

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    J'ai déjà crée un interface asp.net/c# qui contient un fileupload qui donne le chemin du fichier Excel et un botton intégrer qui permet d'intégrer des données
    Excel dans différentes tables dans SQL Server 2005. Le problème que je n'arrive pas à faire ce script donc j'ai essayé de convertir Excel en CSV mais les données s'intégrent dans une seule table et un seul champs. Pourriez-vous m'aider à faire un script qui intégre les données Excel dans BD via ASP.Net

  4. #4
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Merci infiniment. Je vais tester le code et je t'informe du résultat. Y a t il une autre solution sans utiliser DataGrid???

  6. #6
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    En fait, son Datagrid ne sert qu'à afficher le tableau extrait d'excell.
    Sans doute pour que l'utilisateur constate bien que le tableau s'est correctement chargé d'excell.

    Mais tu peux juste stocker ce tableau (sans l'afficher dans un gridview) et directement lancer ta procédure d'import DB, ça dépend de tes besoins

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Oui tu as raison . Tu m'as bcp aidé 1000 fois merci .
    Le code pour importer excel à sql server contient des erreurs
    La référence d'objet n'est pas définie à une instance d'un objet.
    j'essayerai de régler ce problème. Bonne journée

  8. #8
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    si tu as des soucis avec un endroit particulier, poste ta portion de code problématique, on essaiera de t'aider

    bon courage

  9. #9
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Voici l'erreur qui m'affiche quand je click sur Import Excel Data :
    La référence d'objet n'est pas définie à une instance d'un objet.La référence d'objet n'est pas définie à une instance d'un objet.
    0Thacker Nannette P.O. Box 9028 Kansas City KS 913-745-5315 913-745-5315 support@shiningstar.net http://www.shiningstar.net cat_id: 0 Development
    La référence d'objet n'est pas définie à une instance d'un objet.La référence d'objet n'est pas définie à une instance d'un objet.
    0Dylan Elliot 1234 Tentative Road Suite 330 Overland Park KS 66102 913-555-5555 913-555-5555 dylan@hotmail.com cat_id: 0 Digital Imaging
    La référence d'objet n'est pas définie à une instance d'un objet.La référence d'objet n'est pas définie à une instance d'un objet.
    0Jackson Jyl 423 Pike Blvd. Lenexa KS 66111 913-555-5555 913-555-5555 jyljackson@yahoo.com http://www.shiningstar.net cat_id: 0 Copy Writing
    La référence d'objet n'est pas définie à une instance d'un objet.La référence d'objet n'est pas définie à une instance d'un objet.
    0Thacker Larry P.O. Box 9028 Kansas City KS 913-745-5315 913-745-5315 support@shiningstar.net http://www.shiningstar.net cat_id: 0 Technology
    La référence d'objet n'est pas définie à une instance d'un objet.La référence d'objet n'est pas définie à une instance d'un objet.
    0O'Conner L'Toya 141 Don't Drive O'Paine TX 60000 555-555-5555 555-555-5555 cat_id: 0 Technology
    N.B.: Déjà le code ne contient pas la chaine de connexion pour intégrer les données dans la base sql server. J'ai déjà testé cela et ça ne marche pas

  10. #10
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Bonjour,
    Ok c'est bon j'ai converti les fichiers Excel en format CSV pour que je puisse les interagir facilement dans la base données via asp.net puisque les fichiers contiennent plusieurs informations.

  11. #11
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut Interagir des fichiers CSV dans base données via asp.net/c#
    Je suis arrivée à intégrer des données csv dans base données sql server via asp.net/c# mais seulement dans une seule table dans différentes champs. Comment faire pour les intégrer dans différentes tables. Prière de m'aider

  12. #12
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    je ne sais pas comment est ta procédure d'import.
    tu dois simplement faire plusieurs Insert.

    poste un morceau de code si tu n'y arrives pas

  13. #13
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut Code utilisé
    Code ci dessus pour l'insertion dans une seule table :
    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
    {
            SqlConnection con = new SqlConnection(@"Data Source=SWEET-1A52E1A1A;Initial Catalog=FOO;Persist Security Info=True;");
            string filepath = "C:\\test.csv";
            StreamReader sr = new StreamReader(filepath);
            string line = sr.ReadLine();
            string[] value = line.Split(';');
            string requete = "INSERT tsttable(nom,prenom,age)VALUES (' ',' ',' ')";
            DataTable dt = new DataTable(requete);
            DataRow row;
            foreach (string dc in value)
            {
                dt.Columns.Add(new DataColumn(dc));
            }
            while (!sr.EndOfStream)
            {
                value = sr.ReadLine().Split(';');
                if (value.Length == dt.Columns.Count)
                {
                    row = dt.NewRow();
                    row.ItemArray = value;
                    dt.Rows.Add(row);
                }
            }
            string chaineSqlServer = "Data Source=SWEET-1A52E1A1A; Integrated Security= SSPI; DataBase = test";
            { con = new SqlConnection(chaineSqlServer); }
            SqlBulkCopy bc = new SqlBulkCopy(con.ConnectionString, SqlBulkCopyOptions.TableLock);
            bc.DestinationTableName = "tbltest";
            bc.BatchSize = dt.Rows.Count;
            con.Open();
            bc.WriteToServer(dt);
            bc.Close();
            con.Close();
        }

  14. #14
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    ton code me semble un peu fouilli mais soit.

    il te suffit de dupliquer ou adapter les lignes qui envoient l'INSERT dans la DB.

    splitter ta source de données pour choisir ce que tu veut insérer.

  15. #15
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    J'ai essayé de faire de traitement pour pouvoir insérer dans deux tables mais ça n'a pas marché voici l'erreur :
    l'exception InvalidOperationException n'a pas été gérée par le code utilisateur : Le ColumnMapping fourni ne correspond à aucune colonne de la source ou de la destination.
    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
    protected void Button3_Click(object sender, EventArgs e)
        {
            // traitement 1
            {
                SqlConnection con = new SqlConnection(@"Data Source=SWEET-1A52E1A1A;Initial Catalog=FOO;Persist Security Info=True;");
                string filepath = "C:\\test.csv";
                StreamReader sr = new StreamReader(filepath);
                string line = sr.ReadLine();
                string[] value = line.Split(';');
                string requete = "INSERT tsttable(nom,prenom,age) VALUES (' ',' ',' ')";
                DataTable dt = new DataTable(requete);
                DataRow row;
                foreach (string dc in value)
                {
                    dt.Columns.Add(new DataColumn(dc));
                }
                while (!sr.EndOfStream)
                {
                    value = sr.ReadLine().Split(';');
                    if (value.Length == dt.Columns.Count)
                    {
                        row = dt.NewRow();
                        row.ItemArray = value;
                        dt.Rows.Add(row);
                    }
                }
                string chaineSqlServer = "Data Source=SWEET-1A52E1A1A; Integrated Security= SSPI; DataBase = test";
                {
                    con = new SqlConnection(chaineSqlServer)
    ;
                }
                SqlBulkCopy bc = new SqlBulkCopy(con.ConnectionString);
                bc.DestinationTableName = "tbltest"; // donner les autres tab de destination
                bc.BatchSize = dt.Rows.Count;
                con.Open();
                bc.WriteToServer(dt);
                bc.Close();
                con.Close();
            }
            // traitement 2  
            {
                SqlConnection con = new SqlConnection(@"Data Source=SWEET-1A52E1A1A;Initial Catalog=FOO;Persist Security Info=True;");
                string filepath1 = "C:\\test.csv";
                StreamReader sr1 = new StreamReader(filepath1);
                string line1 = sr1.ReadLine();
                string[] value1 = line1.Split(';');
                string requete1 = "INSERT tsttable1(fonction) VALUES (' ')";
                DataTable dt1 = new DataTable(requete1);
                DataRow row1;
                foreach (string dc1 in value1)
                {
                    dt1.Columns.Add(new DataColumn(dc1));
     
                }
                while (!sr1.EndOfStream)
                {
                    value1 = sr1.ReadLine().Split(';');
                    if (value1.Length == dt1.Columns.Count)
                    {
                        row1 = dt1.NewRow();
                        row1.ItemArray = value1;
                        dt1.Rows.Add(row1);
                    }
                }
                string chaineSqlServer = "Data Source=SWEET-1A52E1A1A; Integrated Security= SSPI; DataBase = test";
                {
                    con = new SqlConnection(chaineSqlServer);
                }
                SqlBulkCopy bc1 = new SqlBulkCopy(con.ConnectionString);
                bc1.DestinationTableName = "tbltest1";
                bc1.BatchSize = dt1.Rows.Count;
                con.Open();
                bc1.WriteToServer(dt1);
                bc1.Close();
                con.Close();
            }
        }

  16. #16
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    ta table "tbltest1" a elle exactement les mêmes champs (colonnes) que l'autre?

  17. #17
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Le fichier csv contient ces champs : nom;prenom;age;fonction
    La table tbltest contient: nom, prenom, age.
    La table tbltest1 contient: fonction et une clé étrangère de la tbltest (#nom).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/02/2009, 18h32
  2. Réponses: 4
    Dernier message: 03/10/2008, 13h37
  3. Réponses: 0
    Dernier message: 25/03/2008, 14h22
  4. MS SQL Server Integration Services (SSIS)
    Par billyrose dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 11/04/2007, 21h30
  5. ASP/ SQL Server : resultat de RS dans une cellule.
    Par joe_le_mort dans le forum ASP
    Réponses: 2
    Dernier message: 11/08/2005, 13h26

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