2009-05-28 5 views
0

Je suis en train de lire un fichier texte en C# et d'essayer de l'enregistrer dans une base de données SQL. Je vais bien sauf que je ne veux pas la première ligne, qui est le nom des colonnes, inclus dans l'importation. Quelle est la meilleure façon d'exclure ces?Enregistrement d'un fichier texte dans une base de données SQL sans noms de colonnes

Le code est comme ce

while (textIn.Peek() != -1) 
{ 
    string row = textIn.ReadLine(); 
    string[] columns = row.Split(' '); 
    Product product = new Product(); 
    product.Column1 = columns[0]; 
    etc..... 
    product.Save(); 
} 

grâce

+0

Il semble que votre fichier texte est séparé par des tabulations. Si c'est le cas, vous pouvez utiliser: row.Split ("\ t"); – Beatles1692

Répondre

0

comment vous importez les données? Si vous faites une boucle en C# et que vous les insérez un à la fois, construisez votre boucle pour sauter la première insertion!

ou de simplement supprimer la première ligne insérée après qu'ils sont là.

donner plus d'informations, obtenir plus de détails ...

2

Si vous écrivez le code vous-même à lire dans le fichier, puis importer ... pourquoi ne pas sauter un peu plus de la première ligne?

0

Passer un indicateur dans le programme (dans le cas où la première ligne est également des données) qui fait que le programme saute la première ligne de texte. Si ce sont les mêmes noms de colonne que ceux utilisés dans la base de données, vous pouvez également l'analyser pour en extraire les noms de colonnes au lieu de les coder en dur (en supposant que ce soit ce que vous faites actuellement :)). Pour finir, si vous utilisez une base de données MySQL et que vous avez un accès en ligne de commande, vous pouvez regarder la syntaxe LOAD DATA LOCAL INFILE qui vous permet d'importer des données CSV définies arbitrairement.

1

Voici ma suggestion:

string[] file_rows; 
using(var reader=File.OpenText(filepath)) 
{ 
file_rows=reader.ReadToEnd().Split("\r\n"); 
reader.Close(); 
} 

for(var i=1;i<file_rows.Length;i++) 
{ 
var row=file_rows[i]; 
var cells=row.Split("\t"); 
.... 
} 
0

Pour référence ultérieure un coup d'oeil à ce paquet impressionnant: FileHelpers Bibliothèque

Je ne peux pas ajouter des liens pour l'instant, mais Google devrait aider, il est sur sourceforge

Cela rend nos vies ici un peu plus facile quand les gens insistent sur l'utilisation des fichiers comme intégration

Questions connexes