SqlSugar操作Sqlite数据库
1.WPF笔记2.WPF将DataGrid中的数据保存到CSV中3.C# 单例使用4.Nlog笔记5.串口学习笔记6.C# 控件设置只可输入数字7.C# 运算符 ?、??、?: 、?. 、各种问号的用法和说明8.Redis笔记9.WinForm实现Loading等待界面10.C# Socket网络编程11.C#正则表达式12.BackgroundWorker控件使用记录13.INotifyPropertyChanged14.泛型类和泛型方法15.C# action,delegate,func的用法和区别16.单值转换器17.日志工具
18.SqlSugar操作Sqlite数据库
19.Winform中创建导航窗口:WizardFramework使用SqlSugar操作Sqlite数据库
.net core和.net5/.net6/.net7/.net8/.net9/.net10
安装SqlSugarCore。
net framework4.6+
安装SqlSugar。
以下代码都在一个SqlSugarMethod类中。
获得数据库对象:
这里要注意的是FilePath路径为生成程序的目录\bin\Debug\net8.0内,而不是代码目录内。
private string FilePath = Environment.CurrentDirectory + @"\SqlSugarDB\SugarSQL.db";
private SqlSugarClient db = null;
/// <summary>
/// 获得数据库对象
/// </summary>
/// <returns></returns>
public void GetSql()
{
db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = $"Data Source={FilePath}", // SQLite 连接字符串
DbType = DbType.Sqlite, // 指定数据库类型为 SQLite
IsAutoCloseConnection = true, // 自动关闭连接
InitKeyType = InitKeyType.Attribute//从实体特性中读取主键自增列信息
});
}
创建数据库:
/// <summary>
/// 创建数据库
/// </summary>
public bool CreateBase()
{
return db.DbMaintenance.CreateDatabase();
}
创建数据表:
/// <summary>
/// 创建数据表
/// </summary>
public void CreateTable()
{
//两种方法都能创建表
//db.CodeFirst.InitTables(typeof(Student));
db.CodeFirst.InitTables<Student>();
}
//实体与数据库结构一样
public class Student
{
//数据是自增需要加上IsIdentity
//数据库是主键需要加上IsPrimaryKey
//注意:要完全和数据库一致2个属性
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
public int? SchoolId { get; set; }
public string? Name { get; set; }
}
查询一个表中全部数据:
/// <summary>
/// 查询一个表全部数据
/// </summary>
/// <returns></returns>
public List<Student> QueryAll()
{
//查询表的所有
return db.Queryable<Student>().ToList();
}
根据某些条件查询:
/// <summary>
/// 查询
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <param name="c"></param>
public void Query(out Student a, out List<Student> b, out List<Student> c)
{
// 跟据主键查询:id为参数
int id = 2;
a = db.Queryable<Student>().InSingle(id);
//根据某个数据查询:name为方法参数
string name="Tom";
b = db.Queryable<Student>().Where(s => s.Name == name).ToList();
//模糊查询:方法参数key为关键字
string key = "o";
c = db.Queryable<Student>().Where(s => s.Name.Contains(key)).ToList();
}
插入数据:
/// <summary>
/// 插入数据
/// </summary>
public void InsertData()
{
var Tom = new Student()
{
Id = 2,
SchoolId = 3,
Name = "Tom"
};
db.Insertable(Tom).ExecuteCommand();
}
更新数据:
/// <summary>
/// 更新数据
/// </summary>
public void UpdateData()
{
var Tom = new Student()
{
Id = 2,
SchoolId = 3505,
Name = "Tom"
};
db.Updateable(Tom).ExecuteCommand();
}
删除数据:
public void DeleteData()
{
//根据主键
db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand();
//根据主键数组
db.Deleteable<Student>().In(new int[] { 1, 2 }).ExecuteCommand();
}
本文作者:时而有风
本文链接:https://www.cnblogs.com/shieryoufeng/p/18264296
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!