.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 ...
随机推荐
- 可遇不可求的Question之MySqlClient的Guid 类型的映射篇
关于 Guid 类型的映射 MySql 没有原生的 Guid 类型,一般使用 binary(16) 或者 char(36) 这两个类型.早期版本的 Connector/Net 将 binary(16) ...
- [XAF] Llamachant Framework Modules
Llamachant Framework Modules 最近更新 2018-08-22 *变更:我们从所需的模块列表中删除了审计跟踪模块.如果要在应用程序中使用Audit Trail功能,请将Aud ...
- oracle数据导入
1.删除原有数据库的内容 drop user username cascade; 我的数据库名为test,所以sql语句为: drop user test cascade; 2.创建表空间: 语句为: ...
- 7 week work
Dom和Bom的起源.方法.内容.应用. Dom:起源:首先听到Virtual DOM这个概念应该来自于React,并且在不了解时觉得这个概念是一个逼格特别高的词.其实任何技术的诞生都是有相应的历史的 ...
- Maven2-坐标
什么是Maven坐标? 在生活中,每个城市,地点,都有自己独一无二的坐标,这样快递小哥才能将快递送到我们手上.类似于现实生活,Maven的世界也有很多城市,那就是数量巨大的构件,也就是我们平时用的ja ...
- CS61A hw01
前不久在知乎上看到CS61A 和CS61B spring18 开课的消息.上去看了一眼,发现真的不错,所有proj hw都可以本地测试!也就是说除了没有课程成绩和官方讨论区和TA解答外,这个课完全可以 ...
- 包建强的培训课程(10):Android插件化从入门到精通
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- JSON Web Token(JWT)原理和用法介绍
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.今天给大家介绍一下JWT的原理和用法. 官网地址:https://jwt.io/ 一.跨域身份验证 Internet服务无法与 ...
- 怎么随时获取Spring的上下文ApplicaitonContext,和Spring管理的Bean
BeanFactory接口 Interface BeanFactory getBean <T> T getBean(String name, Class<T> required ...
- Linux(Centos平台)RabbitMQ消息中间件服务器搭建
本篇结合接口测试平台部署来讲,不了解的请先查看我的另一篇文档,HttpRunnerManager接口测试平台部署在服务器上(Centos + python3.6 + Mysql5.7 + uwsgi ...