Comment insertion en bloc d'un fichier CSV dans SQLite C#
J'ai vu des questions similaires (Un, Deux), mais aucun d'entre eux de discuter de la façon d'insérer des fichiers CSV en SQLite. La seule chose que je pouvais penser de le faire est d'utiliser un CSVDataAdapter
et de remplir le SQLiteDataSet
, puis utilisez le SQLiteDataSet
de mettre à jour les tables de la base de données:
La seule DataAdapter pour les fichiers CSV que j'ai trouvé n'est pas réellement disponible:
CSVDataAdapter CSVda = new CSVDataAdapter(@"c:\MyFile.csv");
CSVda.HasHeaderRow = true;
DataSet ds = new DataSet(); //<-- Use an SQLiteDataSet instead
CSVda.Fill(ds);
Pour écrire dans un fichier CSV:
CSVDataAdapter CSVda = new CSVDataAdapter(@"c:\MyFile.csv");
bool InclHeader = true;
CSVda.Update(MyDataSet,"MyTable",InclHeader);
J'ai trouvé le code ci-dessus @ http://devintelligence.com/2005/02/dataadapter-for-csv-files/
Le CSVDataAdapter
était censé venir avec OpenNetCF du SDF, mais il ne semble pas être plus disponible.
Quelqu'un sait où je peux obtenir une CSVDataAdapter
? Peut-être quelqu'un connaît la plus simple chose: comment effectuer des insertions de fichiers CSV dans SQLite... votre aide serait grandement appréciée!
OriginalL'auteur Kiril | 2010-04-22
Vous devez vous connecter pour publier un commentaire.
essayer ce -Import/Export CSV de SQLite à partir de code C#
OriginalL'auteur SysAdmin
Vous pouvez recourir à un certain nombre d'outils pour migrer des données à partir d'un .fichier csv dans une base de données, y compris:
Remarque: la première et la troisième solution nécessite que vous accédez à l' .fichier csv via une interface jdbc.
Tous ces éléments vont vous permettre d'ajuster le processus de migration à un certain degré (par exemple, la taille des lots) et tous supposons que vous voulez faire de la migration manuellement, plutôt que de l'exécution de code C# (qui compliquerait un peu les choses).
Bon point, merci pour la correction.
OriginalL'auteur Tomislav Nakic-Alfirevic
J'ai eu de bonnes expériences personnelles avec FileHelpers (http://www.filehelpers.net/).
OriginalL'auteur Martin R-L
Aborder la dernière partie de votre question:
Donné vous avez besoin d'importer quelques milliers (ou un cpl de millions de dollars) des enregistrements dans sqlite à partir d'un fichier CSV,
Quand il n'y a pas de support direct pour csv d'importation de données via le sélectionner ou insérer des commandes,
Et l'itératif, ligne par ligne, la lecture & insertion n'est pas performant
Puis une alternative pratique est d'utiliser le "sqlite?.exe" & la commande importer via shell execute à partir de votre code c#.
loadcsvtosqlite.cs
loadcsvtosqlite.chauve-souris
loadcsv.sql
OriginalL'auteur RadicalFish
public void LoadCheckFiletoDatabase(string checkFilePath)
{
DataTable tempTable = GetDataTableFromCsv(checkFilePath);
OriginalL'auteur Sean Miller