c#sqlite批量导入
时间: 2023-10-09 13:15:36 浏览: 115
你可以使用C#和SQLite实现批量导入数据的功能。以下是一个简单的示例代码:
```csharp
using System;
using System.Data;
using System.Data.SQLite;
namespace SQLiteBulkInsert
{
class Program
{
static void Main(string[] args)
{
// 数据源文件路径
string dbFilePath = "your_database_file_path.db";
// 数据表名称
string tableName = "your_table_name";
// 要导入的数据集合
DataTable data = GetYourData();
// 创建连接对象
using (SQLiteConnection connection = new SQLiteConnection($"Data Source={dbFilePath};Version=3;"))
{
connection.Open();
// 创建事务
using (SQLiteTransaction transaction = connection.BeginTransaction())
{
// 创建数据适配器
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter())
{
// 设置数据适配器的插入命令
adapter.InsertCommand = new SQLiteCommand($"INSERT INTO {tableName} VALUES (@Column1, @Column2)", connection, transaction);
adapter.InsertCommand.Parameters.Add("@Column1", DbType.String);
adapter.InsertCommand.Parameters.Add("@Column2", DbType.Int32);
// 批量插入数据
foreach (DataRow row in data.Rows)
{
adapter.InsertCommand.Parameters["@Column1"].Value = row["Column1"];
adapter.InsertCommand.Parameters["@Column2"].Value = row["Column2"];
adapter.InsertCommand.ExecuteNonQuery(); }
}
// 提交事务
transaction.Commit();
}
connection.Close();
}
}
static DataTable GetYourData()
{
// 获取要导入的数据集合,可以根据自己的需求进行实现
DataTable data = new DataTable();
data.Columns.Add("Column1", typeof(string));
data.Columns.Add("Column2", typeof(int));
// 添加数据
data.Rows.Add("Value1", 1);
data.Rows.Add("Value2", 2);
// ...
return data;
}
}
}
```
请注意替换代码中的 `your_database_file_path.db` 和 `your_table_name` 分别为你的数据库文件路径和表名。你还需要根据自己的需求实现 `GetYourData()` 方法来获取要导入的数据集合。
以上代码通过使用 `SQLiteDataAdapter` 和事务来实现了批量插入数据到SQLite数据库的功能。
阅读全文