SqlServerHelp
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration; public static class SQLHelp
{
private static string constr = ConfigurationManager.ConnectionStrings["constr"].ToString(); /// <summary>
/// 用于提交Insert Update Delete 返回受影响的行数
/// </summary>
/// <param name="cmdType">操作类型StoreProcdeure 或者是 sql语句</param>
/// <param name="sql">sql语句或者存储过程的名称</param>
/// <param name="parameters">参数的数组,没有参数传递为Null值</param>
/// <returns></returns>
public static int ExecuteNonQuery(CommandType cmdType, string sql, params SqlParameter[] parameters)
{
try
{
using (var con = new SqlConnection(constr))
{
using (var cmd = new SqlCommand(sql, con))
{
cmd.CommandType = cmdType;
if (parameters != null)
{
foreach (var parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
con.Open();
int count = cmd.ExecuteNonQuery();
con.Close();
return count;
}
}
}
catch (Exception ex)
{
throw ex;
}
} /// <summary>
/// 用于提交select 返回 SqlDataReader ,读取完成后需要关闭SqlDataReader
/// </summary>
/// <param name="cmdType">操作类型StoreProcdeure 或者是 sql语句</param>
/// <param name="sql">sql语句或者存储过程的名称</param>
/// <param name="parameters">参数的数组,没有参数传递为Null值</param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(CommandType cmdType, string sql, params SqlParameter[] parameters)
{
try
{
var con = new SqlConnection(constr);
using (var cmd = new SqlCommand(sql, con))
{
cmd.CommandType = cmdType;
if (parameters != null)
{
foreach (var parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
con.Open();
//关闭读取器,将自动关闭连接对象
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
}
catch (Exception ex)
{
throw ex;
}
} /// <summary>
/// 用于提交select中的聚合函数,返回第一行,第一列的值
/// </summary>
/// <param name="cmdType">操作类型StoreProcdeure 或者是 sql语句</param>
/// <param name="sql">sql语句或者存储过程的名称</param>
/// <param name="parameters">参数的数组,没有参数传递为Null值</param>
/// <returns></returns>
public static object ExecuteScalar(CommandType cmdType, string sql, params SqlParameter[] parameters)
{
try
{
using (var con = new SqlConnection(constr))
{
using (var cmd = new SqlCommand(sql, con))
{
cmd.CommandType = cmdType;
if (parameters != null)
{
foreach (var parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
con.Open();
object o = cmd.ExecuteScalar();
con.Close();
return o;
}
}
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 用于提交select 返回 DataSet ,数据集中默认只有一张表格
/// </summary>
/// <param name="cmdType">操作类型StoreProcdeure 或者是 sql语句</param>
/// <param name="sql">sql语句或者存储过程的名称</param>
/// <param name="parameters">参数的数组,没有参数传递为Null值</param>
/// <returns></returns>
public static DataSet ExecuteDataSet(CommandType cmdType, string sql, params SqlParameter[] parameters)
{
try
{
using (var con = new SqlConnection(constr))
{
using (var da = new SqlDataAdapter())
{
var cmd = new SqlCommand(sql, con);
cmd.CommandType = cmdType;
if (parameters != null)
{
foreach (var parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
}
catch (Exception ex)
{
throw ex;
}
} #region List<T> ToList<T>(string cmdText, List<DbParameter> listpar, string connString,IDbHelp db) where T : class, new()
/// <summary>
/// 返回一个list
/// </summary>
/// <typeparam name="T">实体模型</typeparam>
/// <param name="cmdType">操作类型StoreProcdeure 或者是 sql语句</param>
/// /// <param name="sql">sql语句</param>
/// <param name="parameters">参数列表</param>
/// <returns></returns>
public static List<T> ToList<T>(CommandType cmdType, string sql, params SqlParameter[] parameters) where T : class, new()
{
using (var read = ExecuteReader(cmdType,sql ,parameters))
{
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 }
SqlServerHelp的更多相关文章
- 数据库帮助类 SqlServerHelp
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- SQL SA密码丢失
------------记不清了,以下似乎是这样操作的-----NET STOP MSSQLSERVER Net Start MSSQLServer /m"SQLCMD" 安装并使 ...
- Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐户管理权限
原版的:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题文件夹:http://blog.csdn.net/dba_huangzj ...
- SQL Server SA 最佳实践(也许不仅仅是翻译)
老实说,本文主要部分是翻译的,并且由于英语水平的问题,我没有完全翻译,有些我觉得不重要的就跳过了,目前看来应该八九不离十,或者说不会影响最终效果,对于英语水平好的读者,可以自行查看原文.但这一年里面我 ...
- Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题目录:http://blog.csdn.net/dba_huangzj ...
- SqlBulkCopy批量添加
/// <summary> /// 添加数据 /// 注:DataTable列名必须和数据库列名一致 /// </summary> /// <returns>< ...
- 谁把我的表给drop了?
今天生产上有人把几张表给DROP了,一通折腾.恢复备份导数回来数据,重建索引. 但是,我就想知道是谁给干掉了. 到你被删除表数据库中找日志吧.其它的也想不到更好办法了 USE '被删表数据库' --查 ...
随机推荐
- SpringSecurity基于数据库RBAC数据模型控制权限
⒈通用RBAC(Role - Based Access Control)数据模型 ⒉如何使用 1. package cn.coreqi.ssoserver.rbac; import org.sprin ...
- 20165231 预习作业3 linux安装及学习
linux安装 由于以前稍微关注过虚拟机相关知识,所以大致知道虚拟机软件的相关知识.目前我已知的普遍使用的虚拟机软件是VMware Workstation(下文简称VM),VirtualBox(下文简 ...
- Aurelius vs mORMot vs EntityDAC Delphi 的 ORM框架
Aurelius vs mORMot vs EntityDAC Delphi 的 ORM框架: http://www.tmssoftware.com/site/aurelius.asp#produ ...
- MySQL全备+binlog恢复方法之伪装master【原创】
利用mysql全备 +binlog server恢复方法之伪装master 单实例试验 一.试验环境 10.72.7.40 实例 mysql3306为要恢复的对象,mysql3306的全备+binlo ...
- svn更新出现冲突的解决方法
Conflict discovered in '/Users/apple/EtaxiAppServer/common/src/com/yaotaxi/db/MongoDBHelper.java'. S ...
- cocos2dx 3.x 修改NDK_ROOT、ANDROID_SDK_ROOT、ANT_ROOT路径
CMD到setup.py目录 Python setup.py -h 查看帮助: Options: -h,--help showthis help message and exi ...
- $Django 模板层(模板导入,继承)、 单表*详(增删改查,基于双下划线的查询)、static之静态文件配置
0在python脚本中使用django环境 import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETT ...
- python学习第41天
# 索引 # 认识mysql中的key # index key 普通索引,能够加速查询,辅助索引 # unique key 唯一 + 索引,辅助索引 # primary key 唯一 + 非空 + 聚 ...
- Ex 2_34 线性3SAT..._第四次作业
- 【原创】大叔经验分享(35)lzo格式支持
建表语句 CREATE EXTERNAL TABLE `my_lzo_table`(`something` string)ROW FORMAT DELIMITED FIELDS TERMINATED ...