.net DBHelper
DBHelper.cs是程序来连接数据的,也是一个程序必不可少的一个类(本人道行浅,目前这样认为)。由于一个程序基本写一次,容易忘记。所有写在这里备注
首先是引用
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
然后代码:
(
conn.Close();
conn.Dispose();
cmd.Dispose();
这几个为了防患于未然也加上去了
)
public class DBHelper
{
private static readonly string strconnection = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
private static SqlConnection conn = new SqlConnection(strconnection);
//创建给sqlreadr使用
public static SqlConnection GetConnection() { return conn; }
/// <summary>
/// 打开数据库链接
/// </summary>
public static void OpenSqlConnection()
{
if (GetConnection().State == ConnectionState.Closed) { DBHelper.GetConnection().Open(); }
}
/// <summary>
/// 关闭数据库链接
/// </summary>
public static void ClosSqlConnection()
{
if (GetConnection().State == ConnectionState.Open) { DBHelper.GetConnection().Close(); }
} /// <summary>
/// 基础ExecuteNonQuery 方法
/// </summary>
/// <param name="SQLString">执行的sql语句</param>
/// <param name="type">是否执行存储过程·</param>
/// <param name="prep">存储过程参数</param>
/// <returns></returns>
private static int ExecuteNonQuery(string SQLString, CommandType type, SqlParameter[] prep)
{
using (SqlConnection conn = new SqlConnection(strconnection))
{
using (SqlCommand cmd = new SqlCommand(SQLString, conn))
{
int r = ;
try
{
conn.Open();
cmd.CommandType = type;
if (prep != null && prep.Length > )
{
foreach (SqlParameter p in prep)
{
cmd.Parameters.Add(p);
}
}
r = cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex) { throw new Exception(ex.Message); }
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
return r;
}
} } /// <summary>
/// 基础datatable
/// </summary>
/// <param name="SQLString">执行的sql语句</param>
/// <param name="type">是否执行存储过程·</param>
/// <param name="prep">存储过程参数</param>
/// <returns></returns>
private static DataTable GetDataTable( string SQLString, CommandType type, SqlParameter[] prep)
{
using (SqlConnection conn = new SqlConnection(strconnection))
{
using (SqlCommand cmd = new SqlCommand(SQLString, conn))
{
SqlDataAdapter dap = null;
DataTable dt = null;
try
{
cmd.CommandType = type;
if (prep != null && prep.Length > )
{
foreach (SqlParameter p in prep)
{
cmd.Parameters.Add(p);
}
}
dap = new SqlDataAdapter(cmd);
dt = new DataTable();
dap.Fill(dt);
}
catch (Exception ex) { }
finally
{
conn.Close();
conn.Dispose();
cmd.Dispose();
}
return dt;
}
}
} /// <summary>
/// 基础SqlDataReader
/// </summary>
/// <param name="SQLString">执行的sql语句</param>
/// <param name="type">是否执行存储过程·</param>
/// <param name="prep">存储过程参数</param>
/// <returns></returns>
private static SqlDataReader GetList(string SQLString, CommandType type, SqlParameter[] prep)
{
SqlCommand cmd = null;
SqlDataReader dr = null;
cmd = new SqlCommand(SQLString, conn);
if (prep != null && prep.Length > )
{
cmd.Parameters.AddRange(prep);
}
cmd.CommandType = type;
try { dr = cmd.ExecuteReader(); }
catch (Exception ex) { }
return dr;
} //调用ExecuteNonQuery 方法
public static int ExecuteNonQuery(string SQLString, SqlParameter[] prep) {
return ExecuteNonQuery(SQLString, CommandType.StoredProcedure, prep);
}
public static int ExecuteNonQuery(string SQLString) {
return ExecuteNonQuery(SQLString, CommandType.Text, null);
}
//调用GetDataTable 方法
public static DataTable GetDataTable(string SQLString, SqlParameter[] prep) {
return GetDataTable(SQLString, CommandType.StoredProcedure, prep);
}
public static DataTable GetDataTable(string SQLString)
{
return GetDataTable(SQLString, CommandType.Text, null);
}
//调用SqlDataReader 调用此方法需要先打开conn 使用完毕之后关闭conn
public static SqlDataReader GetList(string SQLString, SqlParameter[] prep)
{
return GetList(SQLString, CommandType.StoredProcedure, prep);
}
public static SqlDataReader GetList(string SQLString)
{
return GetList(SQLString, CommandType.Text, null);
} }
.net DBHelper的更多相关文章
- 不该活着的SqlHelper和DBHelper
前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...
- 兼容SQLSERVER、Oracle、MYSQL、SQLITE的超级DBHelper
本示例代码的关键是利用.net库自带的DbProviderFactory来生产数据库操作对象. 从下图中,可以看到其的多个核心方法,这些方法将在我们的超级DBHelper中使用. 仔细研究,你会发现每 ...
- C#/ASP.NET完善的DBHelper,配套Model生成器
支持Oracle.MSSQL.MySQL.SQLite四种数据库,支持事务,支持对象关系映射:已在多个项目中实际使用. 没有语法糖,学习成本几乎为0,拿来即用. DBHelper类完整代码: usin ...
- C# DBHelper 第二版
1. [代码][C#]代码 跳至 [1] [全屏预览] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- 我也来写:数据库访问类DBHelper
一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...
- DbHelper为什么要用Using?
我们分析一下DbHelper做什么事情,大家都知道它用于数据库的连接操作,这里的数据库连接会创建非托管资源,c#的垃圾回收机制不会对它处理,需要实现IDisposable接口手动释放. 手动释放的 ...
- NHibernate3快速上手教程FluentNHibernate配置与DBHelper
很多学习NHibernate的新手很容易卡在配置文件这一关,正所谓万事开头难,上手后再配合官方文档就比较容易了. 网上关于配置文件的资料非常多,但由于版本的问题,许多老的教程中都没有明确指出类库的版本 ...
- 数据库助手类 DBHelper
using System; using System.Collections.Generic; using System.Text; using System.Configuration; using ...
- 收集C#常用类:自己写的一个DBHelper类
随着学的东西越来越多,一点点的完善吧! using System; using System.Collections.Generic; using System.Linq; using System. ...
- Ado.net中简单的DBHelper类(增删改查)
private static string connString = "server=.;database=hotel;uid=aa;pwd=123";//最好从配置文件中取出 p ...
随机推荐
- 【CF486E】LIS of Sequence题解
[CF486E]LIS of Sequence题解 题目链接 题意: 给你一个长度为n的序列a1,a2,...,an,你需要把这n个元素分成三类:1,2,3: 1:所有的最长上升子序列都不包含这个元素 ...
- curl安装和使用
curl可以看作命令行浏览器 1.开启gzip请求 # curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte 2.监控网页的响 ...
- asp.net执行顺速
理解ASP.NET的运行机制(例:通过HttpModule来计算页面执行时间) 一:简要介绍一下asp.net的执行步骤 1.IIS接收到客户请求 2. IIS把请求交给aspnet_isapi.dl ...
- springcloud config 提取公共参数
每个微服务都有自己的配置文件application-local.yml和bootstrap.yml, 这个两个配置文件的读取顺序是先读取bootstrap.yml文件,在读取application-l ...
- 谈谈npm依赖管理
引言 现在的前端开发几乎都离不开nodejs的包管理器npm,比如前端在搭建本地开发服务以及打包编译前端代码等都会用到.在前端开发过程中,经常用到npm install来安装所需的依赖,至于其中的技术 ...
- Python面向对象4:类的相关函数与属性
1 类相关函数- issubclass:检测一个类是否是另一个类的子类- isinstance:检测一个对象是否是一个类的实例- hasattr:检测一个对象是否由成员xxx- getattr: ge ...
- 第78节:Java中的网络编程(上)
第78节:Java中的网络编程(上) 前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: ...
- Java面试集合(七)
前言: Java面试集合(六) 的回顾,对于final可以修饰常量,方法,和类,一旦常量定义好后就不可改变,而方法,用final来修饰方法,方法不可重载,继承,重写,final用来修饰类,该类不能被继 ...
- [Postman]发送第一个请求(1)
通过API请求,您可以与具有要访问的API端点的服务器联系,并执行某些操作.这些操作是HTTP方法. 最常用的方法是GET,POST,PUT和DELETE.方法的名称是不言自明的.例如,GET使您可以 ...
- [部署]CentOS安装PHP环境
环境 虚拟机:VMWare10.0.1 build-1379776 操作系统:CentOS7 64位 HTTP Server:Apache(httpd) 步骤 PHP环境需要HTTP服务器支持,本文使 ...