C# 操作SQLite数据库之增删改查

/// 1、添加引用

工具 -> Nuget 包管理器 -> 管理解决方案的 Nuget 程序包
    -> 在搜索输入 "sqlite" 安装 System.Data.SQLite



    
    

using System.Data.SQLite;
using System.Data;

    

/// 2、创建表

// 数据库路径
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
// 连接数据库: 如果数据库文件不存在会自动创建, 数据库后缀可以任意,例如 aaa.jas   aaa.dat
SQLiteConnection cn = new SQLiteConnection("data source=" + path);

if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = cn;
    // 创建表语句
    cmd.CommandText = "create table IF NOT EXISTS t1(id integer primary key autoincrement,name text not null);";
    cmd.ExecuteNonQuery();
}
cn.Close(); // 关闭数据库连接


/// 3、插入数据
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
SQLiteConnection cn = new SQLiteConnection("data source=" + path);

if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = cn;

    cmd.CommandText = "INSERT INTO t1(name) VALUES(@name);";
    cmd.Parameters.Add("name", DbType.String).Value = "jasper";
    cmd.ExecuteNonQuery();
}
cn.Close();



/// 4、删除数据
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
SQLiteConnection cn = new SQLiteConnection("data source=" + path);

if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = cn;
    
    cmd.CommandText = "DELETE FROM t1 where id=@id;";
    cmd.Parameters.Add("id", DbType.Int32).Value = 3;
    cmd.ExecuteNonQuery();
}
cn.Close();




/// 5、更新数据
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
SQLiteConnection cn = new SQLiteConnection("data source=" + path);

if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = cn;
    
    cmd.CommandText = "UPDATE t1 SET name=@name where id=@id;";
    cmd.Parameters.Add("name", DbType.String).Value = "Jasper";
    cmd.Parameters.Add("id", DbType.Int32).Value = 1;
    cmd.ExecuteNonQuery();
}
cn.Close();




/// 6、查询数据
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
SQLiteConnection cn = new SQLiteConnection("data source=" + path);
if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = cn;
    cmd.CommandText = "SELECT * FROM t1 where id=@id;";
    cmd.Parameters.Add("id", DbType.Int32).Value = 1;

    SQLiteDataReader sr = cmd.ExecuteReader();
    while (sr.Read())
    {
        Console.WriteLine(sr.GetInt32(0));  // 第一列数据     id
        Console.WriteLine(sr.GetString(1)); // 第二列数据     name
    }
    sr.Close();
}
cn.Close();



/// 7、查询数据的行数(多少条记录)
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
SQLiteConnection cn = new SQLiteConnection("data source=" + path);
if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    SQLiteCommand cmd = new SQLiteCommand();
    cmd.Connection = cn;
    cmd.CommandText = "SELECT count(*) FROM t1;";
    SQLiteDataReader sr = cmd.ExecuteReader();
    if(sr.Read())
    {
        Console.WriteLine(sr.GetInt32(0).ToString());
    }
    
    sr.Close();
}
cn.Close();




/// 8、事务
string path = @"C:\Users\Administrator\Desktop\tmp\aaa.db";
SQLiteConnection cn = new SQLiteConnection("data source=" + path);
if (cn.State != System.Data.ConnectionState.Open)
{
    cn.Open();
    // 开始事务
    using (SQLiteTransaction tr = cn.BeginTransaction())
    {
        SQLiteCommand cmd = new SQLiteCommand();
        cmd.Connection = cn;

        cmd.CommandText = "INSERT INTO t1(name) VALUES(@name)";

        for (int i = 0; i < 100; i++)
        {
            cmd.Parameters.Add("name", DbType.String).Value = "jasper" + i;
            cmd.ExecuteNonQuery();
        }
        // 事务提交
        tr.Commit();
    }

}
cn.Close();



猜你喜欢

转载自www.cnblogs.com/ywj1874/p/9082688.html