CSV-import: weet iemand welke goede CSV-importprogramma's er zijn?

Ik heb een paar CSV's die moeten worden geïmporteerd in mijn C# naar SQL Server-tabellen. Ik heb dit eerder gedaan, maar vond het behoorlijk saai en vervelend.

Kent iemand tools of methoden om dit proces te versnellen?

Bedankt allemaal!

0

6 antwoord

ALS je het via C# moet doen, kijk dan eens naar FileHelpers of http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx .

ALS je het wilt doen via SQL (BULK INSERT), bekijk dan hier de walkthrough (inclusief bron) http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-in-sql-server-gebruik-bulk-invoegen-load-comma-gescheiden-file-in-sql-server/ (MSDN-referentie http://msdn.microsoft.com/en-us/library/ms188365.aspx ).

Er is echter een gemakkelijkere optie door de SQL Server Import Wizard interactief te gebruiken voor een klein aantal bestanden.

2
toegevoegd

U wilt een BULK INSERT -instructie uitvoeren.

Een snelle Google suggereert deze sites:

  • SQL-server- CSV-bestand in SQL Server importeren met Bulk Insert - Comma-begrensd bestand in SQL Server laden« Journey to SQLAuthority

  • BULK INSERT op msdn

1
toegevoegd

SQL Server Management Studio, on the database under Right Click -> Tasks -> Import Data... can consume CSV files.

Als je het via C# moet doen, zijn er genoeg CSV-lezers en schrijvers in de buurt:

http://www.codeproject.com/KB/cs/CsvReaderAndWriter.aspx

Vanaf hier is het slechts een korte sprong naar een gegevenstabel en SqlBulkCopy .

1
toegevoegd

Ervan uitgaande dat het csv op deze manier is gestructureerd:

  • Eén rij is één item
  • Het gesplitste teken om de velden te verdelen staat in de eerste positie van elke rij.

Ik zou het op die manier doen:

var lines = File.ReadAllLines("");

foreach (string line in lines)
{
    var values = line.Split(new[] { line[0] }, StringSplitOptions.None);
}
0
toegevoegd
dit voegt echter niet echt de records toe aan de db.
toegevoegd de auteur Daren Thomas, de bron
@DarenThomas, je hebt gelijk, ik heb dat niet gelezen.
toegevoegd de auteur Fischermaen, de bron

De bibliotheek FileHelpers is fantastisch om dit soort dingen via code te doen.

0
toegevoegd

SQL Server Integration Services (SSIS) is de ETL-tool van Microsoft en kan gemakkelijk CSV-bestanden verwerken.

0
toegevoegd