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 '被删表数据库' --查 ...
随机推荐
- 百度echarts样式开发
Echarts如何进行实例化 var a1 = null; a1= echarts.init(document.getElementById('a1')); a1.setOption({ color: ...
- Linux后门权限维持手法
0x01 Linux 1. 预加载型动态链接库后门 inux操作系统的动态链接库在加载过程中,动态链接器会先读取LD_PRELOAD环境变量和默认配置文件/etc/ld.so.preload,并将读取 ...
- Pytorch tutorial 之Datar Loading and Processing (2)
上文介绍了数据读取.数据转换.批量处理等等.了解到在PyTorch中,数据加载主要有两种方式: 1. 自定义的数据集对象.数据集对象被抽象为Dataset类,实现自定义的数据集需要继承Dataset. ...
- 代码学习-Linux内核网卡收包过程(NAPI)【转】
转自:https://blog.csdn.net/crazycoder8848/article/details/46333761 版权声明:本文没有任何版权限制,任何人可以以任何方式使用本文. htt ...
- CPU 利用率背后的真相,只有 1% 人知道【转】
导读:本文翻译自 Brendan Gregg 去年的一篇博客文章 “CPU Utilization is Wrong”,从标题就能想到这篇文章将会引起争议.文章一上来就说,我们“人人皆用.处处使用,每 ...
- python字典不区分大小写
from multidict import CIMultiDict dic=CIMultiDict() dic["key"]="1234" print(dic[ ...
- Flash硬件原理
1.2.1. 什么是Flash Flash全名叫做Flash Memory,从名字就能看出,是种数据存储设备,存储设备有很多类,Flash属于非易失性存储设备(Non-volatile Memory ...
- 我理解的vue生命周期
说些题外话,引出vue的生命周期. 比如人出生到寿终正寝,这是人的一个生命周期.他会经历出生,婴儿时期,童年时期,少年时期,青年,中年,老年,到 end.然后,每个时期都会有一定的历史任务在等着去完成 ...
- Sublime Text 3安装Package Control快速建立html5和xhtml文档
Sublime Text 3安装Package Control快速建立html5和xhtml文档 先关闭Sublime text 3:第1步:下载sublime_package_control-mas ...
- SQL Server 2017 安装详解
SQL server 2017下载链接:https://pan.baidu.com/s/1FSzqJfHQAa0QpZ_fObrfjQ 提取码:1xvb 1.双击iso镜像文件 打开setup ...