begin process at 2010 02 10 00:21:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > BULKINSERT EN C#

BULKINSERT EN C#


 Information sur la source

Note :
Aucune note
Catégorie :Base de données Source .NET ( DotNet ) Classé sous :Bulk, SQL Serveur, Insert Niveau :Initié Date de création :27/02/2009 Vu / téléchargé :1 657 / 104

Auteur : Malkuth

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Cette source  permet l'insertion de donnée dans une table en mode BULK (+rapide en gros)
elle montre l'utilisation de la classe SqlBulkCopy ainsi qu'une méthodologie souple et facilement réutilisable.

Cette source fais suite a : http://www.csharpfr.com/codes/SPLIT-SQL-SANS-TABLE -TEMPORAIRE_49355.aspx

la source est en C#3 sur framework .NET 3 pour Visual Studio 2008 (le passage vers C#2 et .NET 2 est aisé)

Source

  • ***********************************************************************************************
  • * Pensez a Changer la constante ChaineDeConnection pour vous connecter à votre serveur cible !
  • * Pensez a créer la table suivante sur le serveur cible avant de tester ce code
  • ***********************************************************************************************
  • SET ANSI_NULLS ON
  • GO
  • SET QUOTED_IDENTIFIER ON
  • GO
  • CREATE TABLE [dbo].[BCP_Test](
  • [ID] [int] IDENTITY(1,1) NOT NULL,
  • [Nom] [nvarchar](200) NOT NULL,
  • [Prénom] [nvarchar](200) NULL,
  • [Age] [int] NOT NULL,
  • [data_0] [nvarchar](50) NULL,
  • [data_1] [nvarchar](50) NULL,
  • [data_2] [nvarchar](50) NULL,
  • [data_3] [nvarchar](50) NULL,
  • [data_4] [nvarchar](50) NULL,
  • [data_5] [nvarchar](50) NULL,
  • [data_6] [nvarchar](50) NULL,
  • [data_7] [nvarchar](50) NULL,
  • [data_8] [nvarchar](50) NULL,
  • [data_9] [nvarchar](50) NULL,
  • CONSTRAINT [PK_BCP_Test] PRIMARY KEY CLUSTERED
  • (
  • [ID] ASC
  • )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  • ) ON [PRIMARY]
***********************************************************************************************
* Pensez a Changer la constante ChaineDeConnection pour vous connecter à votre serveur cible !
* Pensez a créer la table suivante sur le serveur cible avant de tester ce code
***********************************************************************************************
         
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BCP_Test](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Nom] [nvarchar](200) NOT NULL,
	[Prénom] [nvarchar](200) NULL,
	[Age] [int] NOT NULL,
	[data_0] [nvarchar](50) NULL,
	[data_1] [nvarchar](50) NULL,
	[data_2] [nvarchar](50) NULL,
	[data_3] [nvarchar](50) NULL,
	[data_4] [nvarchar](50) NULL,
	[data_5] [nvarchar](50) NULL,
	[data_6] [nvarchar](50) NULL,
	[data_7] [nvarchar](50) NULL,
	[data_8] [nvarchar](50) NULL,
	[data_9] [nvarchar](50) NULL,
 CONSTRAINT [PK_BCP_Test] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

 Conclusion

La source est assez peu documenter concernant la classe DatareaderHelper<T> mais cette classe est juste un foure tout pratique mais trés mal optimiser (Reflexion Powa) à mon gout. je conseille donc de ne pas trop l'utilisé sur des projet ou la charge CPU est un facteur crucial.

La méthode utiliser est trés souple et permet de facilement changer la source des donnée, les rêgle de vérifications des donnée.
Chague étape se voie attribué une fonction simple qui peux être facilement tester hors context.
Des étapes peuvent être ajouter ou supprimer sans difficulter.
Les donnée sont toutes traiter "à la volé" la consomation mémoire est extremement faible même si l'on importe des millions de ligne de donnée. Attention à ne pas se leurer, toutes les données doivent bien être stocké qq part, SQL serveur établie sans aucun doute sont propre tampon que se soit en mémoire ou sur disque(nan la magie n'éxiste pas :s ).

Malgrés le peu d'optimisation du code, le temps de traitement est faible face aux temps de sql Serveur a réalisé l'import (et oui même en mode bulk faut pas rêver).

 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


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) "SURFACE LIKE" EN SILVERLIGHT
Source avec Zip Source .NET (Dotnet) CONVERTIR EN NOIR ET BLANC AVEC IL
Source avec une capture Source .NET (Dotnet) TRAITEMENT D'IMAGE EN NOIR ET BLANC

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) DEMO_XML_BASE_DE_DONNÉES par DanMor498
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPORTER SCRIPT SQL SQL SERVER (CREATE - DROP - INSERT - TAB... par citt
Source avec Zip Source avec une capture Source .NET (Dotnet) SPLIT SQL SANS TABLE TEMPORAIRE par TheOnlyMaX
Source avec Zip Source .NET (Dotnet) MOTEUR CSV ET RECORDSET PERSO par SwitchApocalyps
Source avec Zip Source .NET (Dotnet) INSERER UN PHOTO DANS UNE BASE DE DONNÉES MYSQL/ORACLE par herold

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR DE SCRIPT SQL DE DONNÉES par thiosyiasar
Source .NET (Dotnet) GENERER LES LIGNES INSERT SQL POUR VOS TABLES SQL SERVER par kmikaz

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probleme d'insert db access [ par space ] Je suis desole de poser des questions aussi stupides mais bon je vois pas je suis callé. J'aimerais realise un insert dans une bd access et pour cela C# - Insert (problème) [ par Tommy666 ] Salut,J'ai un prob pour ajouter dans la base ACCESS... et faisant de cette façon :// Ouvrir la connexionOleDbConnection conn = new OleDbConnection() ; Probleme d INSERT [ par giorgio08 ] Bonjour a tous , j ai un petit probleme =&gt; en fait j ai 8 textbox qui comportent des numero et j ai 8 autres textebox qui correspondent au 8 prece faire un INSERT en c# [ par july_68 ] bonjour,j'essaye de faire un INSERT avec le code suivant string sqlcmd=" insert into agenda (id_type,hd,hf,bloc,datedebut,datefin,Idperiodicite,Type,s Procédure import dans une dll avec visu de progression sur une progressbar [ par Arthenius ] Hello,j'ai un petit souci...j'ai fait une dll d'importation (je sais y a DTS pour ca...mais pour des raisons techniques c'est ma dll que je dois utili Probleme insert en c# [ par koubiack ] Bonjour,malgrés les recherches sur ce site mon code ne fonctionne toujours pas !je cherche a effectuer une insertion dans une BD apartir d'un fichier probleme requete insert [ par mook5naz ] bonjour a tous,je lit un fichier .log.je dois ecrire chaque ligne lut dans une base sql.je rencontre un probleme lors de l'execution de cette requete. insert sqlserver [ par amirirn1 ] bonjour,je veux entrer des donn&#233;e dans la base de donn&#233;mais qd je fais l insertion j ai l erreur&nbsp; ExecuteNonQuery:Connection property h requete insert mysql c# 2005 [ par dembum ] Voila je voudari savoir comment faire des insertion de ligne dans une base de donn&#233;es mysql avec visual studio 2005 en c#.Quelle provider faut il contenu d'un fichier byte[] en string via WebService... [ par Bowen123 ] Bonjour tous,Je tente de passer le contenu d'un fichier ( string monContenuFichierString = Convert.ToBase64String(byte[ ] monContenuFichier); )&nbsp;d


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

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,764 sec (3)

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