begin process at 2010 02 10 05:40:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.NET

 > BULK COPY EXCEL VERS SQL SERVER

BULK COPY EXCEL VERS SQL SERVER


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :12 835 / 657

Auteur : MorpionMx

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
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

Les Membres Club peuvent 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

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) CREATION D'ANAGLYPHES - PHOTOS EN RELIEF
Source avec Zip Source avec une capture Source .NET (Dotnet) THREAD ET PROGRESSBAR - EXEMPLE SIMPLE
Source avec Zip Source avec une capture Source .NET (Dotnet) XNA FRAMEWORK : UTILISATION DE BOUDINGSPHERE ET BOUNDINGBOX
Source avec Zip Source avec une capture Source .NET (Dotnet) XNA FRAMEWORK : CRÉATION D'UN SCROLLINGBACKGROUND
Source avec Zip Source .NET (Dotnet) INSERTION ET RÉCUPERATION D'UNE IMAGE EN BASE DE DONNÉES

 Sources de la même categorie

Source avec Zip CHAT SERVER-CLIENT par abderrahmenbilog
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMULATION DE CONSOLE POUR WINDOWS MOBILE par originalcompo
Source avec Zip Source .NET (Dotnet) BASE DE DONNÉES EN XML par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLECONV - APPLICATION DE CONVERSION MONÉTAIRE AVEC TAUX E... par Jeffrey_
Source avec Zip Source .NET (Dotnet) TRAITEUR D'IMAGE (MINI) par ycyril

 Sources en rapport avec celle ci

Source avec Zip PILOTER EXCEL VIA MICROSOFT.OFFICE.INTEROP.EXCEL par whismeril
Source avec Zip Source avec une capture Source .NET (Dotnet) SPLIT SQL SANS TABLE TEMPORAIRE par TheOnlyMaX
Source avec Zip Source avec une capture Source .NET (Dotnet) GENEREREQUÊTE par donald42
Source avec Zip Source .NET (Dotnet) CRÉER UN ADDIN AUTOMATION POUR EXCEL par ShareVB
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORT DE DONNÉES DE SQL VERS EXCEL par Cameleon69

Commentaires et avis

Commentaire de okok1 le 19/07/2007 19:01:34

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

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

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

Commentaire de soupiste le 03/11/2009 12:31:51

super code ! mais lorsque je le modifie pour mon cas d'export de ma feuille, je me retrouve face à un problème de type de données entre la source excel et les colonnes de ma table.
Mes colonnes de table sont de type nvarchar(10) ou nvarchar(100) et float.
Une exception se produit, me disant IMPOSSIBLE DE CONVERTIR LE TYPE STRING DE LA SOURCE DE DONNEES EN NVARCHAR DE LA DESTINATION.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

BULKCOPY depuis excel vers SQL SERVER [ par soupiste ] Salut à toute la communauté. 1- Grâce à un DATATABLE, j'affiche une feuille excel par un programme c# dans un datagridview . 2- Je voudrais faire en 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 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 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 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 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales