gpt4 book ai didi

c# - 如何将 CSV 文件批量插入 SQLite C#

转载 作者:太空狗 更新时间:2023-10-30 00:58:31 25 4
gpt4 key购买 nike

我见过类似的问题(12),但没有一个讨论如何将 CSV 文件插入 SQLite。我唯一能想到的就是使用 CSVDataAdapter 并填充 SQLiteDataSet,然后使用 SQLiteDataSet 更新表数据库:

我发现的 CSV 文件的唯一 DataAdapter 实际上不可用:

CSVDataAdapter CSVda = new CSVDataAdapter(@"c:\MyFile.csv");

CSVda.HasHeaderRow = true;

DataSet ds = new DataSet(); // <-- Use an SQLiteDataSet instead

CSVda.Fill(ds);

写入 CSV 文件:

CSVDataAdapter CSVda = new CSVDataAdapter(@"c:\MyFile.csv");

bool InclHeader = true;

CSVda.Update(MyDataSet,"MyTable",InclHeader);

我在@http://devintelligence.com/2005/02/dataadapter-for-csv-files/ 找到了上面的代码
CSVDataAdapter 应该带有 OpenNetCF's SDF , 但它似乎不再可用。

有谁知道我在哪里可以获得CSVDataAdapter?也许有人知道更简单的事情:如何将 CSV 文件批量插入到 SQLite 中……非常感谢您的帮助!

最佳答案

解决您问题的最后一部分:

Perhaps somebody knows the much simpler thing: how to do bulk inserts of CSV files into SQLite...

假设您需要将几千条(或几百万条)记录从 CSV 文件导入到 sqlite 中,
不直接支持通过选择或插入命令导入 csv 数据时,
并且逐行读取和插入的迭代不支持性能
然后一个实用的替代方法是使用“sqlite?.exe”和通过 shell 从您的 c# 代码执行的导入命令。

loadcsvtosqlite.cs

Process proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = @"loadcsvtosqlite.bat",
Arguments = @"",
UseShellExecute = true,
RedirectStandardOutput = false,
CreateNoWindow = true
}
};
proc.Start();
proc.WaitForExit();

loadcsvtosqlite.bat

sqlite3.exe "db name" < loadcsv.sql

loadcsv.sql

drop table if exists <table name>;
create table <table name> (field1 datatype, field2 datatype ....);
.separator ","
.import <csv file name> <table name>

关于c# - 如何将 CSV 文件批量插入 SQLite C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com