在C#中使用SQLite数据库,通过Insert可以通插入多行数据吗
时间: 2025-01-19 11:11:52 浏览: 31
在C#中使用SQLite数据库,虽然Insert操作通常用于插入单条记录,但可以通过一次性创建一个包含多行数据的`DataTable`或`DbCommand`来实现批量插入。以下是两种常见的方法:
1. **使用DataTable**: 创建一个`DataTable`,填充所有行数据,然后用`SqlBulkCopy`执行批量插入。
```csharp
string connectionString = "your_connection_string";
DataTable data = new DataTable();
// 填充数据...
using (var connection = new SQLiteConnection(connectionString))
{
var bulkCopy = new SqlBulkCopy(connection);
bulkCopy.DestinationTable = data;
try
{
bulkCopy.WriteToServer(data);
Console.WriteLine("Data inserted successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"Error inserting data: {ex.Message}");
}
}
```
2. **使用DbCommand**: 可以直接构造一个`CommandText`,其中包含一个能处理多行数据的INSERT语句,例如,使用`IN`关键字。
```csharp
string connectionString = "your_connection_string";
string sql = "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
List<Tuple<string, string>> rows = ... // 数据集合
StringBuilder commandText = new StringBuilder(sql);
commandText.Append(String.Join(",", rows.Select(row => $"({row.Item1}, {row.Item2})")));
using (var connection = new SQLiteConnection(connectionString))
{
using (var cmd = new SQLiteCommand(commandText.ToString(), connection))
{
connection.Open();
cmd.ExecuteNonQuery();
Console.WriteLine("Data inserted successfully.");
}
}
```
这两种方法都可以一次插入多行数据,但第二种方法通常需要手动处理分隔符和参数列表,不如第一种方法简洁。
阅读全文
相关推荐

















