2010-11-25 9 views
1

Je dois importer des données du fichier texte (non séparées par des virgules, d'autres façons, des caractères différents) vers la base de données (par exemple, mdf). Parce que datagridview charge les données de la base de données plus rapidement qu'à partir du fichier. Quel est le meilleur moyen? MerciC# - Meilleur moyen (le plus rapide) d'importer des données du fichier texte au format MDF

+0

Comment beaucoup de données parlez-vous? Les données sont-elles relationnelles? Comment avez-vous testé la performance? – Tom

+0

Comment traitez-vous les données de telle sorte qu'il est plus lent d'accéder à un fichier local? Je peux * écrire * un échantillon en le poussant dans une base de données, mais je pense que c'est la mauvaise façon d'y aller (si vous avez actuellement un fichier) –

+0

Je parle de fichiers texte de 200MB qui ont des milliers et des milliers de lignes de code. J'essayais de le faire d'abord lire chaque ligne, le donner à la classe (faite pour les données) puis à arraylist et en utilisant foreach loop essayé de créer sqlcommand et ajouter des colonnes en tant que paramètres. Ça a marché mais ça importait tellement longtemps que je pense qu'il y a un meilleur moyen. –

Répondre

1

Si vous utilisez SQL Server (qui .mdf vous suggère êtes), vous pouvez essayer encartage en vrac:

BULK 
INSERT MyTable 
FROM 'c:\myfile.txt' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 
+0

Les colonnes de mon fichier texte ne sont pas séparées par un caractère unique, mais il existe différents caractères qui divisent les colonnes (comme ",", "]", "[" ...). J'ai la fonction pour lire les lignes et les diviser en colonnes, mais je ne sais pas ce qu'il est préférable de faire maintenant. –

+1

Dans ce cas, je suggère de pré-analyser les fichiers pour les rendre conformes au format csv. – Martin

0

Peut-être que la bibliothèque .NET FileHelpers peut faire quelque chose pour vous ...