用一条insert语句来插入多行数据

 

MySQL\PostgreSQL:

INSERT INTO contacts(first_name, last_name, email, phone)
VALUES
    ('John','Doe','john.doe@example.com',NULL),
    ('Lily','Bush','lily.bush@example.com','(408-234-2764)');

在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."); } } ``` 这两种方法都可以一次插入多行数据,但第二种方法通常需要手动处理分隔符和参数列表,不如第一种方法简洁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值