C# sqlite插入多条语句
时间: 2024-09-10 16:23:32 浏览: 64
在C#中,SQLite数据库支持一次性插入多行数据,通常通过使用`INSERT INTO...VALUES`语句结合数组或列表来实现。这里是一个例子:
```csharp
using System;
using System.Data.SQLite;
// 假设你有一个SQLite连接对象conn
string[] rowValues = { "John", "Doe", 25 };
string[] columnNames = { "Name", "LastName", "Age" };
string sqlInsert = $"INSERT INTO Users (Name, LastName, Age) VALUES ({string.Join(",", columnNames)})";
SQLiteCommand command = new SQLiteCommand(sqlInsert, conn);
string[] rowsToInsert = { rowValues[0], rowValues[1], Convert.ToString(rowValues[2]) }; // 如果年龄是整数不需要转换
command.Parameters.AddWithValue(string.Join(",", columnNames), rowsToInsert); // 使用参数化查询防止SQL注入
command.ExecuteNonQuery(); // 执行插入操作
相关问题
C# sqlite 插入多条数据 函数
在C#中,如果你想插入多条数据到SQLite数据库,可以使用`sqlite3_exec()`函数配合SQLite的命令式API,或者使用ADO.NET提供的`DbCommand`和`DataTable`。这里是一个使用SQLiteCommand对象批量插入数据的例子:
```csharp
using System.Data.SQLite;
using System.Data;
// 假设你有一个DataTable包含需要插入的数据
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Column1", typeof(int));
dataTable.Columns.Add("Column2", typeof(string));
// 添加几行数据
DataRow[] dataRows = {
dataTable.NewRow {["Column1", "Value1"], ["Column2", "Data1"]},
dataTable.NewRow {["Column1", 2], ["Column2", "Data2"]},
// 更多数据...
};
// 创建SQLite连接和命令
using (var connection = new SQLiteConnection("Data Source=your_database.db;Version=3;"))
{
connection.Open();
// 使用DataTable的Rows属性作为数据源,创建一个INSERT INTO SQL语句
var commandText = $"INSERT INTO YourTable (Column1, Column2) VALUES ({string.Join(",", dataTable.AsEnumerable().Select(row => "(@Column1, @Column2)", string.Empty)})";
using (var command = new SQLiteCommand(commandText, connection)
{
foreach (var row in dataRows)
{
command.Parameters.AddWithValue("@Column1", row.Field<int>("Column1"));
command.Parameters.AddWithValue("@Column2", row.Field<string>("Column2"));
command.ExecuteNonQuery(); // 执行一次插入操作
}
}
// 关闭命令
}
C#使用sqlite
在C#中,SQLite是一种轻量级的关系型数据库管理系统,它非常适合小型应用或嵌入式设备。C#通过NuGet包System.Data.SQLite或Microsoft.Data.Sqlite提供了对SQLite的支持。以下是使用SQLite在C#项目中的一些基本步骤:
1. **添加依赖**:在你的项目中,打开NuGet包管理器,搜索并安装`System.Data.SQLite`或`Microsoft.Data.Sqlite`库。
2. **连接到数据库**:创建SQLiteConnection实例,指定SQLite文件路径作为数据源,例如:
```csharp
using SQLite;
string dbPath = "path/to/your/database.db";
using (var connection = new SQLiteConnection($"Data Source={dbPath};Version=3;"))
{
// 连接操作...
}
```
3. **执行SQL命令**:使用SQLiteCommand对象执行SQL查询、插入、更新或删除操作:
```csharp
connection.Open();
using (var command = new SQLiteCommand("CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT)", connection))
{
command.ExecuteNonQuery();
}
// 执行其他命令,如读取数据
using (var cmd = new SQLiteCommand("SELECT * FROM Users WHERE Name=?", connection))
{
var reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader.GetString(0)); // 假设Name列是第0个索引
}
}
```
4. **事务处理**:你可以使用SQLiteTransaction对象来封装一组相关的操作,以便于进行原子提交或回滚:
```csharp
using (var transaction = connection.BeginTransaction())
{
try
{
// 执行多条语句...
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw;
}
}
```
阅读全文