Kir*_*ril 8 c# database csv sqlite bulkinsert
我见过类似的问题 ( 1 , 2 ),但没有人讨论如何将 CSV 文件插入 SQLite。我唯一能想到的就是使用 aCSVDataAdapter并填充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);
Run Code Online (Sandbox Code Playgroud)
要写入 CSV 文件:
CSVDataAdapter CSVda = new CSVDataAdapter(@"c:\MyFile.csv");
bool InclHeader = true;
CSVda.Update(MyDataSet,"MyTable",InclHeader);
Run Code Online (Sandbox Code Playgroud)
我发现上面的代码@ http://devintelligence.com/2005/02/dataadapter-for-csv-files/
的CSVDataAdapter应该来与OpenNetCF自卫队,但它似乎没有可用了。
有人知道我在哪里可以得到CSVDataAdapter吗?也许有人知道更简单的事情:如何将 CSV 文件批量插入 SQLite ......您的帮助将不胜感激!
小智 6
解决您问题的最后一部分:
也许有人知道更简单的事情:如何将 CSV 文件批量插入 SQLite ...
鉴于需要导入记录几千(万元或CPL)到源码从一个CSV文件,
如果存在通过选择或插入命令为CSV数据导入不直接支持,
而迭代逐行阅读和插入是不高效
那么一个实用的替代方法是使用“sqlite?.exe”和通过shell从你的c#代码执行的导入命令。
加载csvtosqlite.cs
Process proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = @"loadcsvtosqlite.bat",
Arguments = @"",
UseShellExecute = true,
RedirectStandardOutput = false,
CreateNoWindow = true
}
};
proc.Start();
proc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
加载csvtosqlite.bat
sqlite3.exe "db name" < loadcsv.sql
Run Code Online (Sandbox Code Playgroud)
加载csv文件
drop table if exists <table name>;
create table <table name> (field1 datatype, field2 datatype ....);
.separator ","
.import <csv file name> <table name>
Run Code Online (Sandbox Code Playgroud)
试试这个 -从 C# 代码从 SQLite 导入/导出 CSV
您可以创建 OleDbConnection 到 CSV 文件(只需 google 即可,非常简单),然后将行加载到 DataSet,然后通过 SqliteConnection 将该数据集放入 Sqlite。几行代码。
| 归档时间: |
|
| 查看次数: |
17304 次 |
| 最近记录: |