zoukankan      html  css  js  c++  java
  • C#项目优化

    1.读取的封装

    public static List<T> ConvertData<T>(SqlDataReader sdr)
         {
             List<T> list = new List<T>();
             Type type = typeof(T);
             PropertyInfo[] properties = type.GetProperties();
             while (sdr.Read())
             {
                 T model = Activator.CreateInstance<T>();
                 for (int i = 0; i < properties.Length; i++)
                 {
                     for (int j = 0; j < sdr.FieldCount; j++)
                     {
                         //判断属性的名称和字段的名称是否相同
                         if (properties[i].Name == sdr.GetName(j))
                         {
                             Object value =sdr[j];
                             //将字段的值赋值给User中的属性
                             properties[i].SetValue(model, value, null);
                         }
                     }
                 }
                 list.Add(model);
             }
             return list;
         }
    
    //调用
    List<User> list = new List<User>();
    SqlDataReader sdr = cmd.ExecuteReader();
    list = ConvertData<User>(sdr);
    /// <summary>
            /// SqlDataReader读取封装对象
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sdr"></param>
            /// <returns></returns>
            public static T ConvertObject<T>(SqlDataReader sdr)
            {
                Type type = typeof(T);
                PropertyInfo[] properties = type.GetProperties();
                T model = Activator.CreateInstance<T>();
                while (sdr.Read())
                {
                    for (int i = 0; i < properties.Length; i++)
                    {
                        for (int j = 0; j < sdr.FieldCount; j++)
                        {
                            //判断属性的名称和字段的名称是否相同
                            if (properties[i].Name == sdr.GetName(j))
                            {
                                Object value = sdr[j];
                                //将字段的值赋值给T中的属性
                                properties[i].SetValue(model, value, null);
                            }
                        }
                    }
                }
                return model;
            }
  • 相关阅读:
    【ELK】重置 elasticsearch 的超管 elastic 账号密码
    python两种获取剪贴板内容的方法
    python创建列表和向列表添加元素方法
    7道Python函数相关的练习题
    Python中的那些“坑”
    Python基础教程:copy()和deepcopy()
    Python教程:optparse—命令行选项解析器
    Python教程:面向对象编程的一些知识点总结
    第一个pypi项目发布成功
    一个Markdown文件处理程序
  • 原文地址:https://www.cnblogs.com/hougelou/p/4023794.html
Copyright © 2011-2022 走看看