SqlSugar的功能十分强大,其支持多种类型的查询(基础查询、分页查询、分组去重、联表查询、树形查询等)、增删改、无实体/低代码操作等复杂、高级功能。本文学习使用其增删改查的基本功能用法,后续会逐步学习其高级用法。
新建Winform项目,添加SqlSugarCore的NuGet包引用,本文使用之前基于温湿度、烟雾及火焰检测数据的环境检测数据库进行操作。
首先创建SqlSugarClient对象实例,后续的增删改查都是调用的该对象中的相应函数实现的。
SqlSugarClient db= new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = txtConnStr.Text,
DbType = DbType.SqlServer,
IsAutoCloseConnection = false
});
SqlSugarClient对象的Queryable函数支持无条件返回数据库表所有数据,不同于linq中的db.数据库表.where的函数形式,Queryable函数通过T指定查询的数据库表。如果需要按条件查询,则形式为SqlSugarClient.Queryable().Where()进行条件查询。具体到本文中,查询代码及返回结果如下所示:
bsEcDatas.Clear();
foreach (EnvironmentRecord ec in db.Queryable<EnvironmentRecord>().OrderBy(r => r.CreateTime).ToList())
{
bsEcDatas.Add(ec);
}
SqlSugarClient对象的Insertable函数插入单条数据,该函数后面还需要跟一个执行函数以执行数据库操作。执行函数由多种形式:1)Insertable(T obj).ExecuteCommand()返回插入行数;2)Insertable(T obj).ExecuteReturnIdentity()返回自增列标识。SqlSugarClient支持批量查询及异步插入,不过本文中没有用到,有兴趣的可以见参考文献1。新增数据及返回结果如下所示:
EnvironmentRecord newData = new EnvironmentRecord();
newData.CreateTime = DateTime.Now;
newData.DHTState = true;
newData.ErrorMsg = String.Empty;
newData.FlameValue=string.IsNullOrEmpty(txtFlame.Text)?null:Convert.ToInt32(txtFlame.Text);
newData.Humidity = string.IsNullOrEmpty(txtHum.Text) ? null : Convert.ToInt32(txtHum.Text);
newData.MQValue = string.IsNullOrEmpty(txtMq.Text) ? null : Convert.ToInt32(txtMq.Text);
newData.Temperature = string.IsNullOrEmpty(txtTemp.Text) ? null : Convert.ToInt32(txtTemp.Text);
txtID.Text = Convert.ToString(db.Insertable<EnvironmentRecord>(newData).ExecuteReturnIdentity());
txtDate.Text = newData.CreateTime.ToString();
UpdateQueryData();
SqlSugarClient对象的Updateable函数更新单条数据,该函数后面还需要跟一个执行函数以执行数据库操作,更新数据主键对应的数据记录。SqlSugar支持批量更新数据,或者更新指定列的数据,不过本文中没有用到,有兴趣的可以见参考文献1。更新数据及结果如下所示:
EnvironmentRecord newData = new EnvironmentRecord();
newData.ID = Convert.ToInt32(txtID.Text);
newData.CreateTime = DateTime.Now;
newData.DHTState = true;
newData.ErrorMsg = String.Empty;
newData.FlameValue = string.IsNullOrEmpty(txtFlame.Text) ? null : Convert.ToInt32(txtFlame.Text);
newData.Humidity = string.IsNullOrEmpty(txtHum.Text) ? null : Convert.ToInt32(txtHum.Text);
newData.MQValue = string.IsNullOrEmpty(txtMq.Text) ? null : Convert.ToInt32(txtMq.Text);
newData.Temperature = string.IsNullOrEmpty(txtTemp.Text) ? null : Convert.ToInt32(txtTemp.Text);
db.Updateable<EnvironmentRecord>(newData).ExecuteCommand();
txtDate.Text = newData.CreateTime.ToString();
UpdateQueryData();
SqlSugarClient对象的Deleteable函数删除单条数据,该函数后面还需要跟一个执行函数以执行数据库操作,删除数据主键对应的数据记录。SqlSugar支持普通删除 、单表删除、表达式删除等多种删除方式,不过本文中没有用到,有兴趣的可以见参考文献1。删除数据及结果如下所示:
db.Deleteable<EnvironmentRecord>(new EnvironmentRecord() { ID = Convert.ToInt32(txtID.Text) }).ExecuteCommand();
UpdateQueryData();
本文学习并测试了SqlSugar中最基本的增删改查函数的用法,后续会继续深入学习,并结合Layui的学习进行功能测试。
参考文献:
[1]https://www.donet5.com/Home/Doc