文章目录
- 前言
- 一、安装配置SQLite
- 二、VS环境配置
- 三、数据库连接
- 四、执行SQL语句
- 五、注意
-
- • 读写操作过慢该怎么办?
前言
C# 使用WinForm进行sqlite操作。
一、安装配置SQLite
使用 DB Browser for SQLite 生成和配置SQLite文件。
该软件安装完毕以后,界面为中文。
完成 *.db文件的生成。
二、VS环境配置
添加NuGet引用。
选择正确包,不要点.Core
插入引用
using System.Data;
using System.Data.SQLite;
三、数据库连接
链接到运行目录的hello.db数据库文件。
public SQLiteConnectionStringBuilder connectionString = new SQLiteConnectionStringBuilder();//构造连接数据库的字符串
SQLiteConnection SqlConnection;//连接数据库
connectionString.DataSource = Application.StartupPath + @"\hello.db";
SqlConnection = new SQLiteConnection(connectionString.ToString());
SqlConnection.Open();
注意:要使用绝对路径,否则会报错。
连接后,读取测试。读取log表中UID和Level的记录。如无误,即可证明成功。
var sql = "select * from log";
SQLiteDataAdapter da = new SQLiteDataAdapter(sql, SqlConnection);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable re = ds.Tables[0];
List<string> restr = new List<string>();
foreach (DataRow v in re.Rows)
{
string key = v["UID"].ToString();
string value = v["Level"].ToString();
restr.Add(key + "-" + value);
}
//显示到文本框
foreach (var v in restr)
{
richTextBox1.Text += v;
richTextBox1.Text += "\n";
}
四、执行SQL语句
增记录
var sql = "INSERT INTO Log ( Data, Level, Info) VALUES ( 'Bill', 'Xuanwumen 10', 'Beijing')";
SQLiteCommand SqlCmd = new SQLiteCommand(sql, SqlConnection);
int changedRows = SqlCmd.ExecuteNonQuery();
if (changedRows > 0)
{
MessageBox.Show("ok");
}
SqlCmd.Parameters.Clear();
SqlCmd.Dispose();
删全部
var sql = "DELETE FROM Log";
SQLiteCommand SqlCmd = new SQLiteCommand(sql, SqlConnection);
int changedRows = SqlCmd.ExecuteNonQuery();
if (changedRows > 0)
{
MessageBox.Show("ok");
}
SqlCmd.Parameters.Clear();
SqlCmd.Dispose();
这个比较简单
五、注意
• 读写操作过慢该怎么办?
连接后,如此配置即可
var sql = "PRAGMA synchronous=OFF;";
SQLiteCommand SqlCmd = new SQLiteCommand(sql, SqlConnection);
int changedRows = SqlCmd.ExecuteNonQuery();
sql = "PRAGMA Journal_Mode=WAL;";
SqlCmd = new SQLiteCommand(sql, SqlConnection);
SqlCmd.ExecuteNonQuery();
sql = "PRAGMA Cache_Size=5000;";
SqlCmd = new SQLiteCommand(sql, SqlConnection);
SqlCmd.ExecuteNonQuery();