//辅助查询 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的更多相关文章

随机推荐

  1. 管窥MVVMLight Command参数绑定和事件传递

    前言 由于在实际项目中,业务功能的增加导致软件开发规模在逐渐变大,所以我准备找个Silverlight框架来组织当前项目中的文件,以期能够让后续的业务功能增添和维护更加容易一些.无意中,我在这篇文章中 ...

  2. Android Home键状态保存运用场景

    当我们在一个Activity中有接收Intent过来的值,或者当前Activity有保存数据时候,如果此时不小心按到了Home键,然后没有及时回来而是运行了其它应用程序,当你想起来的时候,恐怕已经是几 ...

  3. coreData,sqlite3,fmdb对比

    core data   core data 基于model-view-controller(mvc)模式下,为创建分解的cocoa应用程序提供了一个灵活和强大的数据模型框架.   core data可 ...

  4. 对于AP中为什么有4个WEP KEY的分析

    这篇文章简要分析一下为什么有4个WEP KEY,及其中的一些原因. SPEC 用过AP的都知道,AP中有4个WEP KEY,但是为什么要设置4个呢,这个是WEP帧的格式决定的: 图中的keyid是2个 ...

  5. HoloLens开发手记 - Unity之Locatable camera 使用相机

    Enabling the capability for Photo Video Camera 启用相机能力 为了使用摄像头,我们必须启用WebCam能力. 在Unity中打开Player settin ...

  6. android加固签名工具(源码下载)

    背景 每次android加固了都要命令行签名好麻烦,正好之前做了个图标生成工具. 所以改了改,比写批处理还要省事. 原理 其实就是用winform程序调用控制台执行命令,android签名的命令如下 ...

  7. 小白学习mysql之索引初步

    导语 索引在数据库中的地位是及其的重要,同时要想完全的掌握索引并不是一件容易的事,需要对数据的查询原理以及计算机操作系统有深刻的认识,当然相关的算法和数据结构也是必须的.因此,这篇文章感到了一些压力, ...

  8. 手把手教你Linux服务器集群部署.net网站 - Linux系统安装和设置

    在开源软件已成趋势化的今天,微软这‘老古董’也开始向开源方向发力,这对我们.NET开发者是极大的喜讯.而在开源软件中, Linux就是其中一个优秀的代表,几乎各行业和计算机有关的都有它的身影,其中一点 ...

  9. [BZOJ 2456]Mode(神奇的抵销)

    题意:求一串数的众数(保证次数的出现次数超过一半),n<=500000 很简单是不是……快拍一下不就行了吗,不超时呢=W=,不过……尼玛空间只有1M…… 于是此题就成了神题(理解成智商题= =本 ...

  10. 过滤器-->GZIP压缩

    1.创建一个 可以使用GZIPOutputStream 压缩的流 package com.zh.yasuo2; import java.io.IOException; import java.util ...