c#简单的SQLHelp
public abstract class SQLHelper
{
//只读的静态数据库连接字符串
//需添加引用System.Configuration;
public static readonly string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
//public static readonly string connString = "server=.;database=Weight;uid=sa;pwd=1";
#region 执行 增 删 改
/// <summary>
/// 执行 增 删 改
/// </summary>
/// <param name="sql">要执行的SQL</param>
/// <param name="param">参数</param>
/// <returns>影响行数</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
{
//实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
using (SqlConnection conn = new SqlConnection(connString))
{
//实例化命令对象,指定sql,与连接对象
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
//如果有参数
if (param != null)
{
//批量添加参数
cmd.Parameters.AddRange(param);
}
//打开连接
conn.Open();
//执行sql并返回影响行数
return cmd.ExecuteNonQuery();
}
}
}
/// <summary>
/// 返回首行首列对象
/// </summary>
/// <param name="sql">要执行的SQL</param>
/// <param name="param">参数</param>
/// <returns>首行首列对象</returns>
public static object ExecuteScalar(string sql, params SqlParameter[] param)
{
//实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
using (SqlConnection conn = new SqlConnection(connString))
{
//实例化命令对象,指定sql,与连接对象
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
//如果有参数
if (param != null)
{
//批量添加参数
cmd.Parameters.AddRange(param);
}
//打开连接
conn.Open();
//执行sql并返回影响行数
return cmd.ExecuteScalar();
}
}
}
#endregion
#region 执行 查询
/// <summary>
/// 执行 查询
/// </summary>
/// <param name="sql">要执行的SQL</param>
/// <param name="param">参数</param>
/// <returns>数据集</returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)
{
//实例化连接对象,并指定连接字符串
SqlConnection conn = new SqlConnection(connString);
//实例化命令对象,指定sql,与连接对象
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
//如果有参数
if (param != null)
{
//批量添加参数
cmd.Parameters.AddRange(param);
}
//打开连接
conn.Open();
//执行sql并返回一个只进只读保持SQL连接的结果集,如果将返回的SqlDataReader关闭时也将关闭连接
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
#endregion
#region 完成数据的查询,返回DataTable
/// <summary>
/// 完成数据的查询,返回DataTable
/// </summary>
/// <param name="sql">要执行的sql</param>
/// <param name="param">参数</param>
/// <returns>DataTable</returns>
public static DataTable GetTable(string sql, params SqlParameter[] param)
{
//实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
using (SqlConnection conn = new SqlConnection(connString))
{
//数据适配器
SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
if (param != null)
{
//批量添加参数
adp.SelectCommand.Parameters.AddRange(param);
}
//填充并返回数据表
DataTable dt = new DataTable();
adp.Fill(dt);
return dt;
}
}
#endregion
#region 根据sql获得List集合
/// <summary>
/// 根据sql获得List集合
/// </summary>
public static List<T> GetList<T>(String sql, params SqlParameter[] param)
where T : class,new()
{
List<T> entities = new List<T>();
using (SqlDataReader sdr = SQLHelper.ExecuteReader(sql))
{
while (sdr.Read())
{
T entity = new T();
//获得当前实体类型信息
Type type = typeof(T);
//遍历结果集中的每一列
for (int i = 0; i < sdr.FieldCount; i++)
{
//获得列名
String columnName = sdr.GetName(i);
//根据列名取得属性信息
PropertyInfo property = type.GetProperty(columnName);
//如果当前列的值为null则跳过
if (!(sdr.GetValue(i) is DBNull))
{
//给属性赋值
property.SetValue(entity, sdr.GetValue(i), null);
}
}
entities.Add(entity);
}
}
return entities;
}
#endregion
}
c#简单的SQLHelp的更多相关文章
- .Net Core 系列:2、ADO.Net 基础
目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...
- C#,一份超简单的数据库帮助类,SqlHelp
简单,实用,留存. using System; using System.Collections.Generic; using System.Configuration; using System.D ...
- C# ADO.NET操作数据库 SqlHelp.cs类
刚开始练习ADONET的时候,练习的一个SQLHelp.cs 数据库操作类,很简单,但是也很实用 using System; using System.Collections.Generic; us ...
- WinForm 水晶报表的简单使用
今天需要做出一个水晶报表, 以前在学校的时候就看过一点点,有些印象, 但没有具体的了解过,今天百度了一下,发现这个东西相当的方便简单. 还很完美. 开发工具是VS2010,水晶报表没有内置.需要自己下 ...
- asp.net mvc(一) ----------简单封装成通用的List<T>集合
asp.net mvc(一) 这些天开始学习asp.net mvc,用传统的asp.net已经快四的年了,刚开始接触asp.net mvc确认感觉有点不适应,主要体现在asp.net mvc的实现上. ...
- OracleHelp以及其简单应用
我自己写的简单的OracleHelp <?xml version="1.0" encoding="utf-8" ?> <configurati ...
- 【造轮子】打造一个简单的万能Excel读写工具
大家工作或者平时是不是经常遇到要读写一些简单格式的Excel? shit!~很蛋疼,因为之前吹牛,就搞了个这东西,还算是挺实用,和大家分享下. 厌烦了每次搞简单类型的Excel读写?不怕~来,喜欢流式 ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
随机推荐
- 怎样理解prototype对象的constructor属性
function Person(name){ this.name = name; } var lilei = new Person("Lilei"); lilei.construc ...
- 点标记(lambda表达式+linq查询标记符)与linq语句(查询表达式)
什么是Linq表达式?什么是Lambda表达式? 参照:https://www.cnblogs.com/zhaopei/p/5746414.html
- 利用贝叶斯算法实现手写体识别(Python)
在开始介绍之前,先了解贝叶斯理论知识 https://www.cnblogs.com/zhoulujun/p/8893393.html 简单来说就是:贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯 ...
- VBA if...else语句
一个if语句由一个布尔表达式和一个或多个语句组成.如果条件评估为True,则执行if条件下的语句.如果条件评估为False,则执行else部分块下的语句. 语法 以下是VBScript中的if els ...
- Java后端HttpClient Post提交文件流 及服务端接收文件流
客户端将文件转换为流发送: 依赖的包: <dependency> <groupId>org.apache.httpcomponents</groupId> < ...
- django启动通过ip或是域名访问
setting.py里面的ALLOWED_HOSTS = ['localhost','域名','本机ip'] 启动时一般都是命令行 python manage.py runserver [端口号] ...
- bash基础——grep、基本正则表达式、扩展正则表达式、fgrep
grep grep全称:Globally search a Regular Expression and Print 全局搜索正则表达式 正规表达式本质上是一种"表示方法", 只要 ...
- 7.MapReduce操作Hbase
7 HBase的MapReduce HBase中Table和Region的关系,有些类似HDFS中File和Block的关系.由于HBase提供了配套的与MapReduce进行交互的API如 Ta ...
- 个人推荐-几款好用的App
前言 在使用智能手机的过程中比较喜欢尝试一些新奇好玩的app,同时也积攒下了不少个人认为很有帮助或很有特点的app,写这篇随笔当做一个记录吧. 便签-小周便签 一款功能十分强大的便签app,在编辑界面 ...
- nginx用指针的值的最后一位来判断过期事件
nginx中,将地址的最后一位取出来,用Instace变量标识,用来判断是否连接已经被释放成为过期时间 为什么指针地址最后一位一定是0呢? 这里的内存地址,一定是内存分配器分配出来的地址,如new . ...