目录
一、安装
二、使用(Mysql)
1、获取连接字符串
2、获取一个SqlSugarClient实例
3、构建一个表模型(名字不同,可通过SugarTable特性指定表)
4、使用SqlSugar框架命令操作数据库(增删改查)
二、使用(sqlite)
1、配置
2、创建表
3、增删改查
4、以导航方式增加
5、以导航方式更新
6、以导航方式查询
通过NuGet包管理器搜索SqlSugar(MySql还要安装MySql.Data、Newtonsoft.Json)包并安装。
public static string GetConStr() { var builder = new MySqlConnectionStringBuilder() { Server = "localhost", UserID = "root", Password = "123456", Database = "test" }; return builder.ConnectionString; }
示例代码:
public static SqlSugarClient GetSql() { string _connectstr = GetConStr(); SqlSugarClient _client = new (new ConnectionConfig { ConnectionString = _connectstr, DbType = DbType.MySql, IsAutoCloseConnection = true, InitKeyType = InitKeyType.Attribute }); return _client; }
示例代码:
[SugarTable("teacher")] class Student { public int ID { get; set; } public string Name { get; set; } }
示例代码:
public static void Main() { SqlSugarClient client = GetSql(); try { client.Ado.CheckConnection(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } //SqlSugarClient? myclient= GetSqlSugarClient; Student stu = new() { ID = 2, Name = "lisi" }; //var res = client.Queryable().Where(it => (it.ID.Equals(stu.ID))&&it.Name=="刘老师").First(); var res = client.Queryable ().Where(it =>it.Name.Contains("老师")).First(); //var res = client.Queryable ().First(it => (it.ID.Equals(stu.ID)) && it.Name == stu.Name); Console.WriteLine(res.Name); List res2=client.Queryable ().ToList(); foreach (Student student in res2) Console.WriteLine(student.Name); }
sqlite官网下载sqlite及其配套工具
var fd = new OpenFileDialog(); fd.InitialDirectory = Directory.GetCurrentDirectory(); fd.Title = "选择数据库"; fd.ShowDialog(); if (!string.IsNullOrEmpty(fd.FileName)) { _scope = new SqlSugarScope(new ConnectionConfig() { ConnectionString = $"data source={fd.FileName}", DbType = DbType.Sqlite, IsAutoCloseConnection = true, }); }
_scope.CodeFirst.InitTables(); _scope.CodeFirst.InitTables ();
_scope.Insertable(new Student() { Id = 9, Score = 99, Name = "Auston", SchoolId = 0 }).ExecuteCommand(); //增 _scope.Deleteable().Where(m => m.Id == 0).ExecuteCommand(); //删 _scope.Updateable (new Student() { Id = 3, Score = 65, Name = "Kimi" }).ExecuteCommand(); //根据主键更改 var list = _scope.Queryable ().ToList(); //查
Listlist = new List () { new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 99, Name = "Auston7" }, new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 59, Name = "Tom7"}, new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 100, Name = "kimi7" } }; List list8 = new List () { new Student() { Id =SnowFlakeSingle.Instance.NextId(), Score = 99, Name = "Auston8" }, new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 59, Name = "Tom8"}, new Student() { Id = SnowFlakeSingle.Instance.NextId(), Score = 100, Name = "kimi8" } }; List Schools = new List () { new School() { Id=7,Name="NiuDun",Students=list}, new School() { Id=8,Name="FuDan",Students=list8} }; _scope.InsertNav(Schools).Include(i => i.Students).ExecuteCommand(); //插入导航
Listlist = new List () { new Student() { Id = SnowFlakeSingle.instance.NextId(), Score = 50, Name = "Auston7" }, new Student() { Id = SnowFlakeSingle.instance.NextId(), Score =39, Name = "Tom7"}, }; List Schools = new List () { new School() { Id=7,Name="JianQiao",Students=list}, }; _scope.UpdateNav(Schools).Include(m=>m.Students).ExecuteCommand();
//Data.Add(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")); var schools = _scope.Queryable().Includes(m =>m.Students).OrderBy(i=>i.Id,OrderByType.Desc).ToList(); //var stus = schools[3].Students; //var stus8 = schools[4].Students; //foreach (var student in stus) { Data.Add($"\t{student.SchoolId} {student.Id} {student.Name} : {student.Score}"); } //foreach (var student in stus8) { Data.Add($"\t{student.SchoolId} {student.Id}{student.Name} : {student.Score}"); }