• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#——反射,自动生成添加的SQL语句

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 C#中的反射。是C#中特别重要也是特别神奇的特性,对后面学习框架,了解框架的原理。以及自己写框架,都是必不可少的。学习反射的过程中。总给我一种茅塞顿开的感觉,以前不懂的,现在懂了

  

  反射的介绍:https://www.cnblogs.com/Kare/p/4601436.html

 

我学了反射以后。也想写一个框架。。哈哈哈 架构师像我招手 。。。。。

   

   增加的方法(什么类都可以)

前提:类名和数据库表名一致。属性名和数据库列名一致。类要有无参构造函数。

       :主键必须为id 自增,(简化)

        /// <summary>
        /// 单行添加
        /// </summary>
        /// <param name="obj">哪个对象</param>
        /// <returns>是否成功</returns>
        public static bool Insert(Object obj)
        {
            //获取type对象
            Type type = obj.GetType();
            //获取所有属性
            PropertyInfo[] propertys = type.GetProperties();

            //定义2个数组接受属性和值 Length - 1 添加不用id
            string[] col = new string[propertys.Length - 1];
            string[] value = new string[propertys.Length - 1];
            //索引
            int count = 0;
            foreach (PropertyInfo prop in propertys)
            {
                if (prop.Name!="id")
                {
                    col[count] = prop.Name;//拿到属性名称
                    value[count] = prop.GetValue(obj).ToString();//拿到属性的值
                    count++;
                }
            }
            //拼接SQL语句
            StringBuilder sbsql = new StringBuilder();
            //insert into [表名] ([列名1],。。。) values('值1',。。。。)
            sbsql.Append("insert into [").Append(type.Name).Append("]([")
                .Append(string.Join("],[",col)).Append("])");
            sbsql.Append("values ('").Append(string.Join("','", value)).Append("')");
            //执行
            int num=SqlseverDBhelper.ExecuteNonQuery(sbsql.ToString());
            return num>0;
        }

  调用

  static void Main(string[] args)
        {
            User u1 = new User();
            u1.Uname = "王五";
            u1.Uadd = "zhongguo";
            u1.Money = 20.51m;
            u1.Uphone = "15827751569";
            for (int i = 0; i < 5; i++)
            {
                if (Eqrom.Insert(u1))
                {
                    Console.WriteLine("添加成功");
                }
            }
            Console.WriteLine("添加5条 王五 一样的数据");

            Console.ReadKey();
           

        }

  

 

总结:反射 我们自己写的时候很少 但是很重要,一定要理解。会用,对后面的成长肯定是大用处的

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#静态构造函数与构造函数你是否还记得?发布时间:2022-07-10
下一篇:
C#winform获取当前路径发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap