c# sqlite
时间: 2023-11-12 19:58:12 浏览: 44
好的,你的问题是:
如何在 C# 中使用 SQLite?
在 C# 中使用 SQLite 需要先安装 SQLite 的 NuGet 包,然后在代码中引用 SQLite 的命名空间。接着可以使用 SQLiteConnection 类来连接 SQLite 数据库,使用 SQLiteCommand 类来执行 SQL 命令,使用 SQLiteDataReader 类来读取查询结果等。
以下是一个简单的示例代码:
```csharp
using System.Data.SQLite;
// 连接 SQLite 数据库
var connectionString = "Data Source=mydatabase.db;Version=3;";
using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
// 执行 SQL 命令
using (var command = new SQLiteCommand("SELECT * FROM mytable", connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
// 处理查询结果
}
}
}
}
```
相关问题
C# sqlite
C#中可以使用SQLite作为嵌入式数据库,以下是一个简单的示例程序,演示了如何在C#中使用SQLite:
```csharp
using System.Data.SQLite;
class Program
{
static void Main(string[] args)
{
// 创建一个内存数据库
string cs = "Data Source=:memory:";
using var con = new SQLiteConnection(cs);
con.Open();
// 创建一个表
string stm = "CREATE TABLE highscores (name VARCHAR(20), score INT)";
using var cmd = new SQLiteCommand(stm, con);
cmd.ExecuteNonQuery();
// 插入一些数据
stm = "INSERT INTO highscores(name, score) VALUES('Me', 9001)";
cmd.CommandText = stm;
cmd.ExecuteNonQuery();
// 查询数据
stm = "SELECT name, score FROM highscores ORDER BY score DESC";
cmd.CommandText = stm;
using SQLiteDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.WriteLine($"{rdr.GetString(0)}: {rdr.GetInt32(1)}");
}
}
}
```
这个程序创建了一个内存数据库,并在其中创建了一个名为`highscores`的表。然后,它插入了一些数据,并查询了这些数据,按照分数从高到低的顺序输出了结果。
C# Sqlite触发器
以下是C# Sqlite触发器的介绍和示例:
触发器是一种特殊的存储过程,它在特定的数据库操作(如插入、更新或删除)发生时自动执行。在C#中,可以使用System.Data.SQLite命名空间中的SQLiteCommand对象来创建和执行触发器。
触发器的创建语法如下:
```csharp
SQLiteCommand cmd = new SQLiteCommand("CREATE TRIGGER trigger_name " +
"AFTER INSERT ON table_name " +
"FOR EACH ROW " +
"BEGIN " +
" -- 触发器执行的SQL语句 " +
"END;", connection);
cmd.ExecuteNonQuery();
```
其中,trigger_name是触发器的名称,table_name是触发器所在的表名,AFTER INSERT ON表示在插入数据后触发,FOR EACH ROW表示对每一行数据都执行一次触发器中的SQL语句。
以下是一个示例,创建一个触发器,在插入数据时自动将时间戳写入到指定的列中:
```csharp
SQLiteCommand cmd = new SQLiteCommand("CREATE TRIGGER insert_timestamp " +
"AFTER INSERT ON my_table " +
"FOR EACH ROW " +
"BEGIN " +
" UPDATE my_table SET timestamp = datetime('now') WHERE id = NEW.id; " +
"END;", connection);
cmd.ExecuteNonQuery();
```
在上面的示例中,my_table是表名,timestamp是要写入时间戳的列名,id是主键列名。