zoukankan      html  css  js  c++  java
  • 功能和形式的反思sql声明 一个

    日前必须使用sql语句来查询数据库 但每次你不想写一个数据库中读取所以查了下反射

    我想用反映一个实体的所有属性,然后,基于属性的查询和分配值


    首先,须要一个实体类才干反射出数据库相应的字段,

    可是開始写属性的时候,我看见特性蛮好用的,能够实现切面编程.

    我也查了特性,可是网上这方面资料不多,大多都是介绍,仅仅能自己慢慢摸索了.

        [Model.Context.SelectContext]
        public class Entity
        {
            public int ID { get; set; }
            public string Name { get; set; }
        }
    弄一个实体类,设置一个特性
    Context.SelectContext
    能够表示能够用来查询数据

    接下来定义SQLHelp类查询

    <span style="white-space:pre">	</span>/// <summary>
            /// 查询集合
            /// </summary>
            /// <param name="T">查询的实体 new()</param>
            /// <param name="sql">sql语句</param>
            /// <param name="result">生产实体运行的操作</param>
            /// <param name="param">可变參数</param>
            /// <returns>返回集合</returns>
            public static IEnumerable<T> SelectReader<T>(string sql, Func<System.Data.Common.DbDataReader, T> result, params System.Data.Common.DbParameter[] param)
               where T : class
            {
                using (SqlConnection con = new SqlConnection(connString))
                {
                    SqlCommand cmd = new SqlCommand(sql, con);
                    cmd.Connection.Open();
                    if (param != null && param.Length > 0)
                        cmd.Parameters.AddRange(param);
                    SqlDataReader dr = cmd.ExecuteReader();
                    var list = new List<T>();
                    while (dr.Read())
                    {
                        T t = result(dr);//产生实体类托付,依据sqlDateReader产生一个实体类
                        if (t != null)
                            list.Add(t);
                    }
                    dr.Close();
                    return list;
                }
            }

    一个查询方法依据sql语句来返回一个集合


    下一篇写sql辅助类,用来定义一个sql操作的模板


    全部源代码 http://download.csdn.net/detail/qq6648208281/7939613


    下一篇 http://blog.csdn.net/qq6648208281/article/details/39379271




    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    Binary Tree Maximum Path Sum
    4Sum
    Candy
    Simplify Path
    Max Points on a Line
    ZigZag Conversion
    Two Sum
    Effective_STL 学习笔记(十二) 对STL线程安全性的期待现实一些
    Effective_STL 学习笔记(十一) 理解自定义分配器的正确用法
    Effective_STL 学习笔记(九) 在删除选项中仔细选择
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4604592.html
Copyright © 2011-2022 走看看