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 '被删表数据库' --查 ...
随机推荐
- HDFS退出安全模式
运行Hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Na ...
- python3+selenium框架设计04-封装测试基类
在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件.在项目下 ...
- C#实现邮件发送的功能
Ø 发送邮件所用的核心知识点 微软封装好的MailMessage类:主要处理发送邮件的内容(如:收发人地址.标题.主体.图片等等) 微软封装好的SmtpClient类:主要处理用smtp方式发送此邮 ...
- Mysql数据库远程链接、权限修改、导入导出等基本操作
一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -ur ...
- selenium——获取元素的尺寸、文本信息、元素的属性、元素是否可见
[is_disabled 可以用来检查元素是否存在]
- 漏洞扫描工具Nessu的安装和简单使用
一.软件介绍Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它.该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库.Nessus不同于传统的漏洞扫描软件,Ness ...
- 使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库
mysql数据库提供了一个很好用的工具mysqldump用以备份数据库,下面将使用mysqldump命令进行备份所有数据库以及指定数据库 一.mysqldump一次性备份所有数据库数据 /usr/lo ...
- 使用VW时,图片的问题
在项目中,使用了VW适配,给图片直接设置了width和height,浏览器模拟正常,在手机上就不显示 解决办法是:在图片外面包一层div,设置width和height,然后图片设置width:100% ...
- wx :swipertab切换
<view> <view class="navbar"> <block wx:for="{{body}}" wx:key=&quo ...
- vue-fetch
1.安装命令“ cnpm install --save isomorphic-fetch es6-promise 2.由于ie不支持Promise,所以需要安装promise-polyfill; cn ...