QueryHelp
//辅助查询 Author:高兵兵
public class QueryHelp
{
#region IList<T> ToList<T>(string cmdText,string connString) where T : new()
/// <summary>
/// 返回一个list
/// </summary>
/// <typeparam name="T">实体模型</typeparam>
/// <param name="cmdText">存储过程名</param>
/// <param name="connString">连接字符串</param>
/// <returns></returns>
public static IList<T> ToList<T>(string cmdText, string connString) where T : new()
{
using (var read = DbHelp.Create().ExecuteDataReader(cmdText, connString))
{
IList<T> list = null;
var type = typeof(T);
if (read.HasRows)
{ list = new List<T>();
}
while (read.Read())
{
T t = new T();
foreach (PropertyInfo item in type.GetProperties())
{
for (int i = ; i < read.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != read.GetName(i).ToLower()) continue;
var value = read[i];
if (value != DBNull.Value)
{
item.SetValue(t, value, null);
}
break;
}
}
//将创建的对象添加到集合中
list.Add(t);
}
return list;
}
}
#endregion #region IList<T> ToList<T>(string cmdText, List<DbParameter> listpar, string connString) where T : class, new()
/// <summary>
/// 返回一个list
/// </summary>
/// <typeparam name="T">实体模型</typeparam>
/// <param name="cmdText">存储过程名</param>
/// <param name="listpar">参数列表</param>
/// <param name="connString">连接字符串</param>
/// <returns></returns>
public static IList<T> ToList<T>(string cmdText, List<DbParameter> listpar, string connString) where T : class, new()
{
using (var read = DbHelp.Create().ExecuteDataReader(cmdText, listpar, connString))
{
List<T> list = null;
var type = typeof(T);
if (read.HasRows)
{ list = new List<T>();
}
while (read.Read())
{
T t = new T();
foreach (PropertyInfo item in type.GetProperties())
{
for (int i = ; i < read.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != read.GetName(i).ToLower()) continue;
object value = read[i];
if (value != DBNull.Value)
{
item.SetValue(t, value, null);
}
break;
}
}
//将创建的对象添加到集合中
list.Add(t);
}
return list;
}
}
#endregion #region IList<T> ToListAsPager<T>(string cmdText, List<DbParameter> listpar, string connString) where T : class, new()
/// <summary>
/// 返回一个list
/// </summary>
/// <typeparam name="T">实体模型</typeparam>
/// <param name="cmdText">存储过程名</param>
/// <param name="listpar">参数列表</param>
/// <param name="connString">连接字符串</param>
/// <returns></returns>
public static IList<T> ToListAsPager<T>(string cmdText, List<DbParameter> listpar, string connString) where T : class, new()
{
listpar[listpar.Count-].Direction = ParameterDirection.Output;
using (var read = DbHelp.Create().ExecuteDataReader(cmdText, listpar, connString))
{
List<T> list = null;
var type = typeof(T);
if (read.HasRows)
{ list = new List<T>();
}
while (read.Read())
{
T t = new T();
foreach (PropertyInfo item in type.GetProperties())
{
for (int i = ; i < read.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != read.GetName(i).ToLower()) continue;
object value = read[i];
if (value != DBNull.Value)
{
item.SetValue(t, value, null);
}
break;
}
}
//将创建的对象添加到集合中
list.Add(t);
}
return list;
}
}
#endregion #region T FirstOrDefault<T>(string cmdText, string connString)
/// <summary>
/// 返回一个实体模型
/// </summary>
/// <typeparam name="T">实体模型</typeparam>
/// <param name="cmdText">存储过程名</param>
/// <param name="connString">连接字符串</param>
/// <returns></returns>
public static T FirstOrDefault<T>(string cmdText, string connString) where T : class,new()
{
using (var read = DbHelp.Create().ExecuteDataReader(cmdText, connString))
{ Type type = typeof(T); if (!read.Read()) return null;
T t = new T();
foreach (PropertyInfo item in type.GetProperties())
{
for (int i = ; i < read.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != read.GetName(i).ToLower()) continue;
object value = read[i];
if (value != DBNull.Value)
{
item.SetValue(t, value, null);
}
break;
} }
return t;
}
}
#endregion #region T FirstOrDefault<T>(string cmdText, List<DbParameter> list, string connString)
/// <summary>
/// 返回一个实体
/// </summary>
/// <typeparam name="T">实体模型</typeparam>
/// <param name="cmdText">存储过程名称</param>
/// <param name="ob">object[]</param>
/// <param name="connString">连接字符串</param>
/// <returns></returns>
public static T FirstOrDefault<T>(string cmdText, List<DbParameter> list, string connString) where T : class,new()
{
using (var read = DbHelp.Create().ExecuteDataReader(cmdText, list, connString))
{
var type = typeof(T);
if (!read.Read()) return null;
var t = new T();
foreach (var item in type.GetProperties())
{
for (var i = ; i < read.FieldCount; i++)
{
//属性名与查询出来的列名比较
if (item.Name.ToLower() != read.GetName(i).ToLower()) continue;
var value = read[i];
if (value != DBNull.Value)
{
item.SetValue(t, value, null);
}
break;
}
}
return t;
}
}
#endregion }
QueryHelp
QueryHelp的更多相关文章
随机推荐
- 流程引擎Activiti系列:在eclipse中搭建咖啡兔的Activiti演示工程中的各种坑及其解决方法(kft-activiti-demo-no-maven)
近期在学习activiti,打算基于现有的框架,比如activiti-explorer或者咖啡兔的示例工程 kft-activiti-demo,在此基础上添加自己的业务流程,看看是否可以走通,以及这个 ...
- 20145215《Java程序设计》实验一实验报告
实验一 Java开发环境的熟悉 实验内容及步骤 使用JDK编译.运行简单的Java程序 命令行下程序开发: 在命令行下建立实验目录,进入该目录后创建exp1目录 敲入以下代码: package exp ...
- 阿里客户端工程师试题简析——Android应用的闪退(crash)分析
1. 问题描述 闪退(Crash)是客户端程序在运行时遭遇无法处理的异常或错误时而退出应用程序的表现,请从crash发生的原因分类与解决方法.在出现crash后如何捕捉并分析异常这两个问题给出自己的解 ...
- Xamarin 的 MVVM 之 Caliburn.Micro
约定 Caliburn.Micro 以下简称 CMXamarin.Form 以下简称 XF 摘要CM 当前已释出 3.0 beta 版https://github.com/Caliburn-Micro ...
- RVM 解决 Ruby 的版本问题
RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换. RVM 的官网是 https://rvm.io/. 如果你打算学习 Ruby / Rails, RVM 是必不可少的工 ...
- jTemplate —— 基于jQuery的javascript前台模版引擎
reference: http://blog.csdn.net/lexinquan/article/details/6674102 http://blog.csdn.net/kuyuyingz ...
- 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 第一章 : javaScript框架分类及主要功能
从内部架构和理念划分,目前JavaScript框架可以划分为5类. 第一种是以命名空间为导向的类库或框架,如果创建一个数组用new Array(),生成一个对象用new Object(),完全的j ...
- 让less编译通过css滤镜
写IE6 hack的时候,发现在less中直接写css滤镜是会报错的,不能编译通过. 解决方法为:用~“”把相关的css代码包裹起来,例如: _top:~"expression(docume ...
- Struts2 标签分类