功能和形式的反思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
版权声明:本文博客原创文章。博客,未经同意,不得转载。
功能和形式的反思sql声明 一个的更多相关文章
- 大约sql声明优化
最近做的mysql数据库优化,并sql声明优化指南.我写了一个小文件.这种互相鼓励有关! 数据库参数获得的性能优化升级都在一起只占数据库应用系统的性能改进40%左右.其余60%的系统性能提升所有来自相 ...
- 交易应用-运行多个SQL声明
事务具有原子性.要么不运行.要么全运行.一旦成功运行永久保存.而这些正是因为事务的原子性和对数据库的持久性形成的.下面是一个关于统一给数据库中的数据改动的批量操作,利用到事务. TODO:批量改动数据 ...
- SQL声明变量并赋值
declare @studentid int //声明一个int型变量 );//设置变量值,tclass 为任意表,classid 为表中任一字段 if(@studentid is not null) ...
- SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间
--更新字段为随机时间 86400秒=1天 UPDATE dl_robot ), ,GETDATE()) ) SQL存在一个表而不在另一个表中的数据 方法一 使用 not in ,容易理解,效 ...
- DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?
DELPHI声明一个指针变量,什么时候需要分配内存,什么时候不需要分配内存?比如我定义个变量 var p:Pchar;如果这个变量声明为全局变量,需要分配内存吗?分配为局部变量,需要分为内存吗?为什么 ...
- 打印Ibatis最后,SQL声明
做项目时,满足这一需求.我们希望最终打印出在数据库运行SQL声明,这些都普遍遇到了一些一般性问题.我会去Appfuse,结果这次没有成功.它是有相关的配置,可是好像没实用.我也就没有深查下去.我想这种 ...
- (转找了好久)实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上
目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上) 准备工作 1.共享资源服务器为 ShareServer,IP地址为:192.168. ...
- 实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC)的形式,共享在另外一个2008服务器上
转载:http://www.cnblogs.com/top5/archive/2012/12/10/2812133.html 目的:实现一个2008serve的IIS的虚拟目录(通过网络路径(UNC) ...
- 面试6 在c#中如何声明一个类不能被继承
C#通过关键字 sealed 可以声明一个类型不能被继承. 设计中应该为所有不被作为基类的类型添加sealed关键字,用以避免各种来自继承的易产生的错误.
随机推荐
- poj 2482 Stars in Your Window(扫描线)
id=2482" target="_blank" style="">题目链接:poj 2482 Stars in Your Window 题目大 ...
- 为网站添加IE6升级提示
原文 为网站添加IE6升级提示 IE6的是一款横跨十年的浏览器,作为一枚前端,对其已经失望透顶,但其在中国的市场比仍旧很高,中国大量的PC上安装的都是盗版Windows XP,而Windows XP上 ...
- Linux 2.6 完全公平调度算法CFS(Completely Fair Scheduler)
分析
转会http://www.ibm.com/developerworks/cn/linux/l-completely-fair-scheduler/index.html? ca=drs-cn-0125 ...
- SpringMVC上传下载
springmvc上传和下载功能 写在一个简单的示例在线基准码 1.导入的必要性jar包:ant.jar.commons-fileupload.jar.connom-io.jar. 当然spring ...
- .net下几种常用的对称加解密
加密解密算法,太常用了,可是实在忍受不了十次八次之后还是要重头写,总是能告诉我原来的算法不好用(实际是压根不会用)的情况,不如直接写出来,再有人要直接给他看看,也顺便记录下算法,方便下新手大众. DE ...
- Composer生成PHP依赖包
近期在用一些扩展或者类库的时候,偶尔会碰到使用Composer生成php包的问题.总结步骤如下:window下安装composer:参考http://www.kankanews.com/ICkengi ...
- Android设计模式(五岁以下儿童)--简单工厂模式
1.面试的时候问这个问题: 在ListView 的item小程序.很多不同的显示风格.或者是,为了更好地维护,不同的样式,应该怎么做? 我一下就想到的是工厂的模式,利用project,编写ViewFa ...
- Android Intent机制与常见的用法
Activity Android于.Activity所有的程序都是必不可少,程都执行在Activity之中.Activity具有自己的生命周期(见http://www.cnblogs.com/feis ...
- UI測试内容
我们在实际工作其中,针对web应用程序,也就是常常所说的B/S系统,能够从例如以下方面来进行用户界面測试: 导航測试 导航描写叙述了用户在一个页面内操作的方式,在不同的用户接口控制之间,比如butto ...
- [转载]Arguments
一.Arguments 该对象代表正在执行的函数和调用他的函数的参数. [function.]arguments[n] 参数function :选项.当前正在执行的 Function 对象的名字. n ...