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的更多相关文章

  1. 不该活着的SqlHelper和DBHelper

    前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...

  2. 兼容SQLSERVER、Oracle、MYSQL、SQLITE的超级DBHelper

    本示例代码的关键是利用.net库自带的DbProviderFactory来生产数据库操作对象. 从下图中,可以看到其的多个核心方法,这些方法将在我们的超级DBHelper中使用. 仔细研究,你会发现每 ...

  3. C#/ASP.NET完善的DBHelper,配套Model生成器

    支持Oracle.MSSQL.MySQL.SQLite四种数据库,支持事务,支持对象关系映射:已在多个项目中实际使用. 没有语法糖,学习成本几乎为0,拿来即用. DBHelper类完整代码: usin ...

  4. 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 ...

  5. 我也来写:数据库访问类DBHelper

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  6. DbHelper为什么要用Using?

    我们分析一下DbHelper做什么事情,大家都知道它用于数据库的连接操作,这里的数据库连接会创建非托管资源,c#的垃圾回收机制不会对它处理,需要实现IDisposable接口手动释放.   手动释放的 ...

  7. NHibernate3快速上手教程FluentNHibernate配置与DBHelper

    很多学习NHibernate的新手很容易卡在配置文件这一关,正所谓万事开头难,上手后再配合官方文档就比较容易了. 网上关于配置文件的资料非常多,但由于版本的问题,许多老的教程中都没有明确指出类库的版本 ...

  8. 数据库助手类 DBHelper

    using System; using System.Collections.Generic; using System.Text; using System.Configuration; using ...

  9. 收集C#常用类:自己写的一个DBHelper类

    随着学的东西越来越多,一点点的完善吧! using System; using System.Collections.Generic; using System.Linq; using System. ...

  10. Ado.net中简单的DBHelper类(增删改查)

    private static string connString = "server=.;database=hotel;uid=aa;pwd=123";//最好从配置文件中取出 p ...

随机推荐

  1. 下载、安装JDK并配置JDK的环境变量

    概念简介: JDK:(Java Development Kit)Java语言的软件开发工具包,它包含了Java程序的开发工具和Java程序的运行环境JRE: JRE:(Java Runtime Env ...

  2. Djangoの1

    有ip无路由是404,ip也无是无法访问此网站.url中?前的是路由,?后是GET请求的各组参数.   子项目和子应用下的两类urls.py:[]内的各个路由函数url,其首参网址的开头无/,结尾有/ ...

  3. java 的原码、补码、反码小总结

    先看一个代码吧: int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); 这个应该很熟悉吧,是 ja ...

  4. linux配置gitlab步骤

    1.安装git命令 yum install -y git 2.查看安装git的版本 git --version 3.创建用于保存项目的文件夹 mkdir 项目文件夹 4.切换目录到项目文件夹 cd 项 ...

  5. DOM1级问题与DOM2级事件

    前几天有小伙伴问过我一个问题,为什么有DOM 0级事件以及DOM2级事件,但是却没有DOM1级事件呢?那我们今天就来说一说DOM的级别问题. 同时推荐伙伴们可以看看尚学堂有关JavaScript BO ...

  6. CSRF 攻击(跨域攻击)

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

  7. clion打断点不生效

    打开CLion的偏好设置(Preferences),选择Build,Execution,Deployment->Toolchains,将Debugger中的Bundled LLDB修改为Bund ...

  8. 第61节:Java中的DOM和Javascript技术

    Java中的DOM和Javascript技术 DOM是一门技术,是文档对象模型.所需的文档只有标记型文档,如我们所学的html文档(文档中的所有标签都封装成为对象了) DOM: 为Document O ...

  9. 第58节:Java中的图形界面编程-GUI

    欢迎到我的简书查看我的文集 前言: GUI是图形用户界面,在Java中,图形用户界面我们用GUI表示,而GUI的完整英文为: Graphical User Interface(图形用户接口), 所谓图 ...

  10. 站点的rel="alternate"属性

    概述 今天看决战平安京官网源码,突然看到了rel的alternate属性,百度了一下,记录下来,供以后开发时参考,相信对其他人也有用. PC端rel 在pc版网页上,添加指向对应移动版网址的特殊链接r ...