SqlSugar直接执行Sql
2022/1/10 19:06:48
本文主要是介绍SqlSugar直接执行Sql,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
SqlSugar直接执行Sql
我的思路:
1、数据库中写好sql
2、用SqlSugar直接执行sql,获取DataTable的数据
3、DataTable转成List
class Program { static void Main(string[] args) { SqlSugarClient db = new SqlSugarClient( new ConnectionConfig() { ConnectionString = "连接字符串***", DbType = DbType.SqlServer,//设置数据库类型 IsAutoCloseConnection = true,//自动释放数据务,如果存在事务,在事务结束后释放 InitKeyType = InitKeyType.Attribute //从实体特性中读取主键自增列信息 }); var dt = db.Ado.GetDataTable("Sql语句***", new List<SugarParameter>(){ new SugarParameter("@name","1") //参数 }); List<StudentModel> studentModels = new List<StudentModel>(); studentModels = ConvertToList(dt); } //DataTable转成List public static List<StudentModel> ConvertToList(DataTable dt) { // 定义集合 List<StudentModel> ts = new List<StudentModel>(); // 获得此模型的类型 Type type = typeof(StudentModel); //定义一个临时变量 string tempName = string.Empty; //遍历DataTable中所有的数据行 foreach (DataRow dr in dt.Rows) { StudentModel t = new StudentModel(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); //遍历该对象的所有属性 foreach (PropertyInfo pi in propertys) { tempName = pi.Name;//将属性名称赋值给临时变量 //检查DataTable是否包含此列(列名==对象的属性名) if (dt.Columns.ContainsKey(tempName)) { // 判断此属性是否有Setter if (!pi.CanWrite) continue;//该属性不可写,直接跳出 //取值 object value = dr[tempName]; //如果非空,则赋给对象的属性 if (value != DBNull.Value) pi.SetValue(t, value, null); } } //对象添加到泛型集合中 ts.Add(t); } return ts; } }
这篇关于SqlSugar直接执行Sql的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-082024年常用的情绪识别API
- 2025-01-07如何利用看板工具优化品牌内容创作与审批,确保按时发布?
- 2025-01-07百万架构师第十一课:源码分析:Spring 源码分析:Spring源码分析前篇|JavaGuide
- 2025-01-07质量检测标准严苛,这 6 款办公软件达标了吗?
- 2025-01-07提升品牌活动管理的效率:看板工具助力品牌活动日历的可视化管理
- 2025-01-07宠物商场的精准营销秘籍:揭秘看板软件的力量
- 2025-01-07“30了,资深骑手” | 程序员能有什么好出路?
- 2025-01-07宠物公园的营销秘籍:看板软件如何帮你精准触达目标客户?
- 2025-01-07从任务分解到资源优化:甘特图工具全解析
- 2025-01-07企业升级必备指南:从传统办公软件到SaaS工具的转型攻略