Utilisation Bulk Copy excel vers SQL Server

cs_malo35 Messages postés 4 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 1 mai 2008 - 1 mai 2008 à 11:51
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 1 mai 2008 à 22:03
Bonjour
Je 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 dans une table sql server 2005 express.
Votre code me parait idéal pour le faire , sauf quand je lance le programme sous C# ,il me dit
qu'il ne connait pas l'objet Feuill1$.
Quelle est la bonne démarche pour utiliser ce code? Ou doit être placé le fichier excel ainsi que
la base sql server 2005 express?

Merci d'avance

5 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
1 mai 2008 à 12:21
Salut,

Quel code ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_malo35 Messages postés 4 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 1 mai 2008
1 mai 2008 à 20:35
Bonjour

Effectivement ça manquait d'infos pour répondre

Sur ce site : csharpfr.com
catégorie .net
classé sou s: excel sql bulkcopy
auteur : MorpionMx

* 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);
* }
* }

Merci pour vos réponses
* }
* }
* }
* }
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
1 mai 2008 à 20:55
Cette source donc : http://www.csharpfr.com/codes/BULK-COPY-EXCEL-VERS-SQL-SERVER_41677.aspx
"Feuil1" est le nom de la feuille dans son classeur à lui, je suppose que tu n'as pas la même.

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_malo35 Messages postés 4 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 1 mai 2008
1 mai 2008 à 21:48
Si j'ai mis exactement le même nom (nom par défaut sous excel), j'ai essayé avec et sans le $.
Mon classeur se nome également Classeur1.xls.
Ce que je ne comprends pas c'est qu'il n'y ait pas de chemin pour localiser
ce classeur.J'ai donc essayé de mettre le chemin du fichier c:\...\Classeur.xls pour la Data Source .... mais c'est toujours la même erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
1 mai 2008 à 22:03
Quel est ton code ?
Configuration de la machine ?
Version de .NET utilisée ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous