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的更多相关文章
随机推荐
- LeetCode 笔记25 Candy (艰难的调试)
There are N children standing in a line. Each child is assigned a rating value. You are giving candi ...
- linux内核分析 期中总结
LINUX内核分析 链接汇总 LINUX内核分析第一周学习总结——计算机是如何工作的 LINUX内核分析第二周学习总结——操作系统是如何工作的 LINUX内核分析第三周学习总结——构造一个简单的Lin ...
- TPLINK GPL code 简要分析
从TPLINK官网下载了GPL code,下载后文件名是wr841nv9_en_gpl.tar.gz, 但是无论是linux还是windows下解压都提示压缩包有问题,不过还是可以解压出完整的目录的. ...
- 20145215《Java程序设计》第2周学习总结
20145215<Java程序设计>第二周学习总结 教材学习内容总结 Java语言中的很多基本语法都和C语言类似,在这里我总结一下Java中的基本语法: 标识符: 标识符是程序中自定义的一 ...
- C#中无边框窗体移动
拖动无边框窗体Form至桌面任何位置 首先建一个Windows应用程序将Form1的 FormBorderStyle属性设置为Noe Point mouseOff;//鼠标移动位置变量 bool le ...
- TO~亲爱的自己
你累的时候,谢绝别人的肩膀: 你扛不动的时候,拒绝别人的帮忙: 你和别人吃饭,不让别人买单你总是想我这样优秀善良, 总不给别人添麻烦,为什么总是找不到爱的人呢? 有时,爱只有在相处时才能找得到的, 是 ...
- Ztree异步加载自动展开节点
在Ztree的官网Demo中,有自动展开的例子,是通过设置节点属性open:true来实现自动展开的,但是在异步加载中,这个属性设置为true也不会自动展开,因为open:true是指在有子节点的情况 ...
- android之网络操作(1)
一.网络操作 在网络操作中JAVA已经为我提供了一套API用来进行网络操作,在android开发中我们仍可以这套API来做开发.下面通过一个简单的例子来了解一下android下的网络操作. 点击图中下 ...
- 项目笔记---C#异步Socket示例
概要 在C#领域或者说.net通信领域中有着众多的解决方案,WCF,HttpRequest,WebAPI,Remoting,socket等技术.这些技术都有着自己擅长的领域,或者被合并或者仍然应用于某 ...
- LINQ浅析
在C# 3.0之前,我们对不同的数据源(数据集合.SQL 数据库.XML 文档等等)进行操作(查询.筛选.投影等等),会使用不同的操作方式. C# 3.0中提出了LINQ(Language Integ ...