.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 ...
随机推荐
- 1405ST软件测试课的要求补充说明
期末成绩由考勤.测试小结报告.实验报告.课堂问答.测试总结报告.(暂不安排笔试) 分数分配:考勤10%,测试小结(双周结)报告10%,实验报告30%,课堂问答20%,测试报告30% 考勤:任选10次 ...
- selenium+phantomjs+pyquery 爬取淘宝商品信息
from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium ...
- Maven2-坐标
什么是Maven坐标? 在生活中,每个城市,地点,都有自己独一无二的坐标,这样快递小哥才能将快递送到我们手上.类似于现实生活,Maven的世界也有很多城市,那就是数量巨大的构件,也就是我们平时用的ja ...
- css伪元素 ::after ::before
我遇到的问题: div盒子标签设置了伪元素 ::after ::before 并给这俩content内容设置了空属性,添加了背景图,发现这两个伪元素没有宽度和高度. 解决方法 给设置伪元素的盒子的 ...
- [转] KVM虚拟化技术生态环境介绍
KVM虚拟化技术生态环境介绍 http://xanpeng.github.io/wiki/virt/kvm-virtulization-echosystem-intro.html kvm和qemu/q ...
- C++的学习心得
由于我们大一就学习的c++,跳过了c语言,VB的学习,在很多方面我们掌握的并不是特别好,在这几种语言中,几乎有时候会产生混淆,通过做大量的c++的题目感觉在题目中应用的最多的就是数组.指针.对类的应用 ...
- JSON Web Token(JWT)原理和用法介绍
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.今天给大家介绍一下JWT的原理和用法. 官网地址:https://jwt.io/ 一.跨域身份验证 Internet服务无法与 ...
- webpack入门-个人学习资源收集
本来是想自己写哈个人学习webpack心德的,不过网上现在已经有各种比较好的,详细的入门或者深入资源了. 所以我就简单总结了一下,我在入门webpack时看的一些博客和文档,以及顺道看到的一些觉得也应 ...
- 【Spark调优】数据倾斜及排查
[数据倾斜及调优概述] 大数据分布式计算中一个常见的棘手问题——数据倾斜: 在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或j ...
- MyBatis 多表关联查询
多表关联查询 一对多 单条SQL实现. //根据部门编号查询出部门和部门成员姓名public dept selectAll() thorws Excatipon; //接口的抽象方法 下面是对应接口的 ...