Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BULK COPY EXCEL VERS SQL SERVER


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : excel, sql, bulkcopy Niveau : Débutant Date de création : 28/02/2007 Date de mise à jour : 28/02/2007 17:20:08 Vu / téléchargé: 11 293 / 577

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


Description

Une question qu'on retrouve souvent sur le forum : Comment copier des données provenant d'un classeur excel vers SQL Server
Voici une méthode simple qui charge en bloc les données vers une table SQL Server

 

Source

  • using System;
  • using System.Data.OleDb;
  • using System.Data.SqlClient;
  • namespace BulkCopy
  • {
  • class Program
  • {
  • static void Main(string[] args)
  • {
  • // La chaine de connexion au fichier excel (changer DataSource)
  • string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Classeur1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
  • // La chaine de connexion au sgbd
  • string sqlConnectionString = "Data Source=localhost;Initial Catalog=TestDB;Integrated Security=True";
  • // On crée la connexion au classeur excel
  • using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
  • {
  • // Changer les champes et le nom de la feuilles en gardant [$]
  • OleDbCommand command = new OleDbCommand("Select ID, Libelle FROM [Feuil1$]", connection);
  • connection.Open();
  • // On execute la commande
  • using (OleDbDataReader reader = command.ExecuteReader())
  • {
  • // Et on fait un bulk copy vers la table sql
  • using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
  • {
  • bulkCopy.DestinationTableName = "TestTable";
  • bulkCopy.WriteToServer(reader);
  • }
  • }
  • }
  • }
  • }
  • }
using System;
using System.Data.OleDb;
using System.Data.SqlClient;

namespace BulkCopy
{
    class Program
    {
        static void Main(string[] args)
        {
            // La chaine de connexion au fichier excel (changer DataSource)
            string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Classeur1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
            // La chaine de connexion au sgbd
            string sqlConnectionString = "Data Source=localhost;Initial Catalog=TestDB;Integrated Security=True";

            // On crée la connexion au classeur excel
            using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
            {
                // Changer les champes et le nom de la feuilles en gardant [$]
                OleDbCommand command = new OleDbCommand("Select ID, Libelle FROM [Feuil1$]", connection);
                connection.Open();

                // On execute la commande
                using (OleDbDataReader reader = command.ExecuteReader())
                {
                    // Et on fait un bulk copy vers la table sql
                    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
                    {
                        bulkCopy.DestinationTableName = "TestTable";
                        bulkCopy.WriteToServer(reader);
                    }
                }
            }
        }
    }
}

Conclusion

Prenons comme exemple un fichier excel avec 2 colonnes : ID et Libelle, il faut que la table de destination contienne elle aussi ces 2 colonnes.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

28 février 2007 17:20:08 :
Mise en forme

Commentaires et avis

signaler à un administrateur
Commentaire de okok1 le 19/07/2007 19:01:34

ca me donne une erreur: bulkCopy est introuvable...

signaler à un administrateur
Commentaire de MorpionMx le 19/07/2007 20:20:28 administrateur CS

elle est déclarée dans le bloc using ;)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Exporter les données d'une base SQL vers Excel [ par TmDsbsBs ] Bonjour,j'ai une base de données SQL Server, et je souhaite exporter ses données vers un fichier en .xls lorsque l'utilisateur le décide.Mais je ne tr Exporter des deonnes de SQL Server vers l"Excel [ par ad_sayouri ] Salut! Je suis en train de développer une application intranet en C#, dans une  interface je liste les données dans une datagrid et j'aimerais bien sa Copier des données de excel vers SQL server 2000 [ par ABDOULRAMZY ] Bonjour, je suis un débutant en csharp et je veux qu'on m'aide à écrire un programme qui me permettra de copier des données contenues dans un fichier Utilisation Bulk Copy excel vers SQL Server [ par malo35 ] BonjourJe débute en DotNet , j'ai commencé l'ébauche d'un site.Mais avant d'aller plus loin, je cherchais la possibilité d'importer mes données excel Données excel vers Sql server 2005 [ par yorundr ] Bonjour,ce que je cherche a faire peut paraitre simple, seulement je n'y arrive pas. Ce qu'il faudrait que je fasse c'est importer les données de mon Importation données excel pour SQL server [ par T103 ] Bonjour à tous,J'ai un fichier Excel dans lequel j'ai plusieurs lignes que je voudrais mettre dans un dataSet.J'ai donc utilisé ce code là pour le fai contenu de la table sql [ par beny100 ] bonjour,j'ai un problème pendant mon export en excel même quanr le contenu de la table d'ou la requette s'effectue est vide elle me renvoie une page e export de données excel vers sql [ par beny100 ] je dispose de données dans ma feuille excel mais je voudrais les inserer dans ma base de données comment y faire?aidez moi SVP!<img src="http://www.cs excel.csv vers BD sql Serveur [ par dimabab ] bonjour svp jai un problème deja j'ai jamais travaillé sur excel.csv et pourtant je suis obligé dans mon projet d'importer fichier csv vers BD sql ser Connexion SQL Server via Pocket pc [ par joecoolups ] Bonjour a tous.Je suis a la recherche d'un composant SQLClient qui me permettrait de faire une connexion via un Pocket pc sur un serveur SQL. Cette co


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.