zoukankan      html  css  js  c++  java
  • SqlSugar直接执行Sql

    参考:http://www.codeisbug.com/Doc/8/1132

    我的思路:

    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; } }
  • 相关阅读:
    HDU 5642 King's Order 动态规划
    HDU 5640 King's Cake GCD
    HDU 5641 King's Phone 模拟
    HDU 5299 Circles Game 博弈论 暴力
    HDU 5294 Tricks Device 网络流 最短路
    HDU 5289 Assignment rmq
    HDU 5288 OO’s Sequence 水题
    星际争霸 虚空之遗 人族5BB 操作流程
    Codeforces Beta Round #3 D. Least Cost Bracket Sequence 优先队列
    Codeforces Beta Round #3 C. Tic-tac-toe 模拟题
  • 原文地址:https://www.cnblogs.com/jishugaochao/p/10297187.html
Copyright © 2011-2022 走看看