日前必须使用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

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

功能和形式的反思sql声明 一个的更多相关文章

  1. 大约sql声明优化

    最近做的mysql数据库优化,并sql声明优化指南.我写了一个小文件.这种互相鼓励有关! 数据库参数获得的性能优化升级都在一起只占数据库应用系统的性能改进40%左右.其余60%的系统性能提升所有来自相 ...

  2. 交易应用-运行多个SQL声明

    事务具有原子性.要么不运行.要么全运行.一旦成功运行永久保存.而这些正是因为事务的原子性和对数据库的持久性形成的.下面是一个关于统一给数据库中的数据改动的批量操作,利用到事务. TODO:批量改动数据 ...

  3. SQL声明变量并赋值

    declare @studentid int //声明一个int型变量 );//设置变量值,tclass 为任意表,classid 为表中任一字段 if(@studentid is not null) ...

  4. SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间

    --更新字段为随机时间 86400秒=1天 UPDATE dl_robot ), ,GETDATE()) )   SQL存在一个表而不在另一个表中的数据   方法一 使用 not in ,容易理解,效 ...

  5. DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?

    DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?比如我定义个变量 var p:Pchar;如果这个变量声明为全局变量,需要分配内存吗?分配为局部变量,需要分为内存吗?为什么 ...

  6. 打印Ibatis最后,SQL声明

    做项目时,满足这一需求.我们希望最终打印出在数据库运行SQL声明,这些都普遍遇到了一些一般性问题.我会去Appfuse,结果这次没有成功.它是有相关的配置,可是好像没实用.我也就没有深查下去.我想这种 ...

  7. (转找了好久)实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上

    目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上) 准备工作 1.共享资源服务器为 ShareServer,IP地址为:192.168. ...

  8. 实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上

    转载:http://www.cnblogs.com/top5/archive/2012/12/10/2812133.html 目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC) ...

  9. 面试6 在c#中如何声明一个类不能被继承

    C#通过关键字 sealed 可以声明一个类型不能被继承. 设计中应该为所有不被作为基类的类型添加sealed关键字,用以避免各种来自继承的易产生的错误.

随机推荐

  1. Mac下Jekyll安装

    之前一直用Wordpress,虽然功能强大,各种插件各种bug,如果想弄个主题,折腾得要命.最近改用jekyll+gitHub免费空间.记录一下. 我用的是Mac,所以只讲述Mac下如何安装,Wind ...

  2. ios学习网络------4 UIWebView以三种方式中的本地数据

    UIWebView这是IOS内置的浏览器.能够浏览网页,打开文档  html/htm  pdf   docx  txt等待格文档类型. safari浏览器是通过UIWebView制作. server将 ...

  3. Flux是一个Facebook团队的前端开发架构

    Flux是一个Facebook团队的前端开发架构 Flux introduction 本文组成: React 官方文档翻译 相关实践心得. 内容上是Flux的介绍,例子将会在以后写出.一旦稍微多了解一 ...

  4. Codeforces 420 B. Online Meeting

    B. Online Meeting time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  5. Ruby: Count unique elements and their occurences in an array

    Is there a method in Ruby that takes an array, and counts all unique elements and their occurrences ...

  6. 基于Linux平台病毒BlackHole病毒的决心

    今天会见了病毒,少量的代码,但在使用小漏洞的函数的,真正的杀伤力相当惊人. 转载请注明出处:http://blog.csdn.net/u010484477谢谢^_^ watermark/2/text/ ...

  7. ReactJs入门思路

    ReactJs入门思路小指南 原文  http://segmentfault.com/blog/fakefish/1190000002449277 React是怎么搞的? React中,把一切东西都看 ...

  8. VS2012使用XListCtrl

    XListCtrl.强大ListCtrl.到现在,所有我曾经遇到过ListCtrl我们使用XListCtrl攻克. XListCtrl有什么可以支持? 变化column背景颜色.尺寸.线.制作chec ...

  9. Winform: use the WebBrowser to display XML with xslt, xml, xslt 转 html 字符串

    原文:Winform: use the WebBrowser to display XML with xslt, xml, xslt 转 html 字符串 声明xml字符串: string xml = ...

  10. SEO 优化,网站推广优化教程100条(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)

    这篇文章不错.  http://www.cnblogs.com/zangdalei/archive/2010/08/31/1814047.html 看了一半之后的,觉得不太靠谱,很多都不懂. 于是 找 ...