C# SqlSugar框架的学习使用(二)-- 类的生成及增删改查的应用
小编:啊南 1479阅读 2020.11.30
环境说明
数据库版本:SQLSERVER 2008 R2
编译器:Visual Studio 2017
我们自己的SQLSERVER2008中创建了一个名称为SumCharge的数据库,里面建立了一部分表,
代码演示
封装一下文本框操作
#region 文本框操作
//定义文本框
private static TextBox _tbMsg;
//定义Action
private Action TextShowAction = new Action(TextShow);
//定义更新UI函数
private static void TextShow(string sMsg)
{
//当文本行数大于500后清空
if (_tbMsg.Lines.Length > 500)
{
_tbMsg.Clear();
}
string ShowMsg = DateTime.Now + " " + sMsg + "\r\n";
_tbMsg.AppendText(ShowMsg);
//让文本框获取焦点
_tbMsg.Focus();
//设置光标的位置到文本尾
_tbMsg.Select(_tbMsg.TextLength, 0);
//滚动到控件光标处
_tbMsg.ScrollToCaret();
}
#endregion
数据库连接代码
#region 数据库连接
///
/// 数据库实例
///
private SqlSugarClient _db;
//数据库连接字符串
private string _connstr = "server=.;uid=sa;pwd=sumsoft;database=SumCharge";
///
/// 连接数据库
///
///
private void ConnectDb(string connstr)
{
_db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = _connstr,
DbType = SqlSugar.DbType.SqlServer,//设置数据库类型
IsAutoCloseConnection = true,//自动释放数据务,如果存在事务,在事务结束后释放
InitKeyType = InitKeyType.Attribute //从实体特性中读取主键自增列信息
});
//用来打印Sql方便你调式
_db.Aop.OnLogExecuting = (sql, pars) =>
{
TextShow(sql);
TextShow(_db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
};
}
#endregion
上面两段就是我们的核心代码了,接下来我们来试试各个功能
连接数据库
我们在打开程序后要先连接数据库,数据库连接成功后才能进行别的操作,上面是连接数据库的核心代码,这里我们直接就是写一下按钮事件即可。
根据数据库表生成实体类
///
/// 根据数据库表生成实体类
///
///
///
private void button1_Click(object sender, EventArgs e)
{
try
{
_db.DbFirst.IsCreateDefaultValue().
CreateClassFile("D:\\Business\\DemoTEST\\CSharp\\SqlSugarTest\\SqlSugarTest\\Model", "Model");
TextShow("类生成成功");
}
catch (Exception ex)
{
TextShow(ex.Message);
}
}
上面的CreateClassFile里面有两个参数,第一个参数是生成的路径,第二个是命名空间。
我们先来运行一下看看,指定的文件夹下现在是空的,我们打开程序,先点连接数据库,再点击生成类。
再看看当前文件夹下,数据库中的表全都生成了对应的类了
我们先把对应的类加入到项目中,方便后面的增、删、改、查的操作。
SqlSugar增删改查操作
我们都以数据库的OS这个表进行操作吧,表里一共四个字段,数据一条也没有。
通过SqlSugar生成的POS类
using System;
using System.Linq;
using System.Text;
namespace Model
{
///
///
///
public partial class POS
{
public POS(){
}
///
/// Desc:
/// Default:
/// Nullable:False
///
public string Posno {get;set;}
///
/// Desc:
/// Default:
/// Nullable:False
///
public string Posname {get;set;}
///
/// Desc:
/// Default:
/// Nullable:True
///
public string OrgCode {get;set;}
///
/// Desc:
/// Default:
/// Nullable:True
///
public string status {get;set;}
}
}
增加Insert
实例化POS赋值后进行插入操作
运行效果
我们前面在连接数据库时加入了输入Sql语句。
再查查数据库中的表
查询Select
返回所有数据
根据条件查询
运行效果
修改Update
运行后看到发现提示错误
提示告诉我们没有找到主键,我们生成的这个类里没有相关的特性,查了一下SqlSugar后,发现我们可以在类中自己定义出来,在POS类中的Posno上面加入特性,
重新运行后发现修改成功了
但是从上面的语句我们可以看到,我们没有加入的OrgCode和Status都默认在修改里面了,数据库中原来有值的也被改为NULL了。
所以我们建议修改的时候要先把对应的属性先查询出来后再统一修改,这样不会传入的类后直接没赋值的改为NULL了。
删除Delete
删除里面我用了lambda表达式,把Posno为0001删除了,其实还有别的删除写法
在数据库中再查询也是没有数据了
数据库版本:SQLSERVER 2008 R2
编译器:Visual Studio 2017
我们自己的SQLSERVER2008中创建了一个名称为SumCharge的数据库,里面建立了一部分表,
代码演示
封装一下文本框操作
#region 文本框操作
//定义文本框
private static TextBox _tbMsg;
//定义Action
private Action
//定义更新UI函数
private static void TextShow(string sMsg)
{
//当文本行数大于500后清空
if (_tbMsg.Lines.Length > 500)
{
_tbMsg.Clear();
}
string ShowMsg = DateTime.Now + " " + sMsg + "\r\n";
_tbMsg.AppendText(ShowMsg);
//让文本框获取焦点
_tbMsg.Focus();
//设置光标的位置到文本尾
_tbMsg.Select(_tbMsg.TextLength, 0);
//滚动到控件光标处
_tbMsg.ScrollToCaret();
}
#endregion
数据库连接代码
#region 数据库连接
///
/// 数据库实例
///
private SqlSugarClient _db;
//数据库连接字符串
private string _connstr = "server=.;uid=sa;pwd=sumsoft;database=SumCharge";
///
/// 连接数据库
///
///
private void ConnectDb(string connstr)
{
_db = new SqlSugarClient(
new ConnectionConfig()
{
ConnectionString = _connstr,
DbType = SqlSugar.DbType.SqlServer,//设置数据库类型
IsAutoCloseConnection = true,//自动释放数据务,如果存在事务,在事务结束后释放
InitKeyType = InitKeyType.Attribute //从实体特性中读取主键自增列信息
});
//用来打印Sql方便你调式
_db.Aop.OnLogExecuting = (sql, pars) =>
{
TextShow(sql);
TextShow(_db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
};
}
#endregion
上面两段就是我们的核心代码了,接下来我们来试试各个功能
连接数据库
我们在打开程序后要先连接数据库,数据库连接成功后才能进行别的操作,上面是连接数据库的核心代码,这里我们直接就是写一下按钮事件即可。
根据数据库表生成实体类
///
/// 根据数据库表生成实体类
///
///
///
private void button1_Click(object sender, EventArgs e)
{
try
{
_db.DbFirst.IsCreateDefaultValue().
CreateClassFile("D:\\Business\\DemoTEST\\CSharp\\SqlSugarTest\\SqlSugarTest\\Model", "Model");
TextShow("类生成成功");
}
catch (Exception ex)
{
TextShow(ex.Message);
}
}
上面的CreateClassFile里面有两个参数,第一个参数是生成的路径,第二个是命名空间。
我们先来运行一下看看,指定的文件夹下现在是空的,我们打开程序,先点连接数据库,再点击生成类。
再看看当前文件夹下,数据库中的表全都生成了对应的类了
我们先把对应的类加入到项目中,方便后面的增、删、改、查的操作。
SqlSugar增删改查操作
我们都以数据库的OS这个表进行操作吧,表里一共四个字段,数据一条也没有。
通过SqlSugar生成的POS类
using System;
using System.Linq;
using System.Text;
namespace Model
{
///
///
///
public partial class POS
{
public POS(){
}
///
/// Desc:
/// Default:
/// Nullable:False
///
public string Posno {get;set;}
///
/// Desc:
/// Default:
/// Nullable:False
///
public string Posname {get;set;}
///
/// Desc:
/// Default:
/// Nullable:True
///
public string OrgCode {get;set;}
///
/// Desc:
/// Default:
/// Nullable:True
///
public string status {get;set;}
}
}
增加Insert
实例化POS赋值后进行插入操作
运行效果
我们前面在连接数据库时加入了输入Sql语句。
再查查数据库中的表
查询Select
返回所有数据
根据条件查询
运行效果
修改Update
运行后看到发现提示错误
提示告诉我们没有找到主键,我们生成的这个类里没有相关的特性,查了一下SqlSugar后,发现我们可以在类中自己定义出来,在POS类中的Posno上面加入特性,
重新运行后发现修改成功了
但是从上面的语句我们可以看到,我们没有加入的OrgCode和Status都默认在修改里面了,数据库中原来有值的也被改为NULL了。
所以我们建议修改的时候要先把对应的属性先查询出来后再统一修改,这样不会传入的类后直接没赋值的改为NULL了。
删除Delete
删除里面我用了lambda表达式,把Posno为0001删除了,其实还有别的删除写法
在数据库中再查询也是没有数据了
相关推荐
- SQL Server 常用函数 1.获取当前时间--GetDate()2.DatePart() 函数3.字符串截取--substring三个参数,第一个参数需要截取的,第二个参数,截取字符串的起始位置(起始位置是1),第三个参数需要截取字符串的长度。4.日期增减函数-DateAdd三个参数,第一参数合法的日期表达式,第二个参…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…