using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data.Common;
using System.Data; namespace Model
{
/// <summary>
///DBHelper 的摘要说明
/// </summary>
public class DBHelper
{
//数据库链接字符串
private static readonly string strConn = "Data Source=.;Initial Catalog=Graduation_Dedign;Integrated Security=True";
//数据提供程序
private static string dbPro = "System.Data.SqlClient"; //数据工厂
private static DbProviderFactory db = DbProviderFactories.GetFactory(dbPro);
private static DbConnection conn;
private static DataSet dt;
private static DbDataAdapter da; //创建并打开连接
public static DbConnection Conn
{
get
{
if (conn == null)
{
conn = db.CreateConnection();
conn.ConnectionString = strConn;
}
switch (conn.State)
{
case ConnectionState.Broken:
conn.Close();
conn.Open();
break;
case ConnectionState.Closed:
conn.Open();
break;
} return conn;
}
} /// <summary>
/// 创建命令
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static DbCommand CreateCommand(string sql, CommandType commandType, params DbParameter[] sqlParams)
{
DbCommand comm = db.CreateCommand();
comm.Connection = Conn;
comm.CommandType = commandType;
comm.CommandText = sql; if (sqlParams != null)
{
comm.Parameters.Clear();
comm.Parameters.AddRange(sqlParams); } return comm;
} /// <summary>
/// 返回受影响行数
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, CommandType commandType, params DbParameter[] sqlParams)
{
DbCommand comm = CreateCommand(sql, commandType, sqlParams);
int num = comm.ExecuteNonQuery();
comm.Connection.Close();
return num;
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSqlTran(List<String> SQLStringList)
{
DbCommand comm = db.CreateCommand();
comm.Connection = Conn;
DbTransaction tx = Conn.BeginTransaction();
comm.Transaction = tx;
try
{
int count = ;
for (int n = ; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n];
if (strsql.Trim().Length > )
{
comm.CommandText = strsql;
count += comm.ExecuteNonQuery();
}
}
tx.Commit();
return count;
}
catch
{
tx.Rollback();
return ;
} } /// <summary>
/// 返回第一行第一列
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static T ExecuteScalar<T>(string sql, CommandType commandType, params DbParameter[] sqlParams)
{
DbCommand comm = CreateCommand(sql, commandType, sqlParams);
T t = (T)comm.ExecuteScalar();
comm.Connection.Close();
return t;
} /// <summary>
/// 返回DataReader
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static DbDataReader ExecuteReader(string sql, CommandType commandType, params DbParameter[] sqlParams)
{
DbCommand comm = CreateCommand(sql, commandType, sqlParams);
return comm.ExecuteReader(CommandBehavior.CloseConnection);
} /// <summary>
/// 返回数据集
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static DataTable GetDataTable(string sql, CommandType commandType, params DbParameter[] sqlParams)
{
DbCommand comm = CreateCommand(sql, commandType, sqlParams);
da = db.CreateDataAdapter();
da.SelectCommand = comm;
dt = new DataSet();
da.Fill(dt); return dt.Tables[];
} }
}

数据库操作封装类 DBHelper.cs的更多相关文章

  1. 编写Java程序,在维护英雄数据的业务过程中复用数据库操作封装类

    返回本章节 返回作业目录 需求说明: 继续完善英雄信息系统,将HeroAccess类中数据库连接相关代码独立出来,并将其封闭成数据库操作工具类DbConnection,便于管理和代码复用. 在Hero ...

  2. java工具类--数据库操作封装类

    java对数据库操作简单处理,如下代码即可,封装了 增删改查及获取连接.关闭连接. 代码如下: package com.test; import java.sql.Connection; import ...

  3. php数据库操作封装类

    <?php /** * Desc: php操作mysql的封装类 * Author zhifeng * Date: 2015/04/15 * 连接模式:PDO */ class MMysql { ...

  4. 打造 通用的 支持多数据库 操作的 DBHelper

    闲来无事,写一个通用的直持多数据库的DBHelper,支持单连接批量执行SQL 因为用了TransactionScope所以请引用System.TransactionScope.dll 代码尚未测试, ...

  5. 开发C# .net时使用的数据库操作类SqlHelp.cs

    练习开发WPF程序的时候,是这样写的,虽然很简单,相必很多新手会用到,所以拿来共享一下, using System; using System.Collections.Generic; using S ...

  6. [Android] Sqlite 数据库操作 工具封装类

    sqlite 数据库封装类 DatabaseUtil.java(封装的类) package com.jack.androidbase.tools; import android.content.Con ...

  7. Oracle数据库操作类及连接方法

    创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...

  8. ABP创建数据库操作步骤

    1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...

  9. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. Chrome不支持本地Ajax请求解决?

    今天用JQuery操作Ajax时,使用load方法加载html块 结果提示: XMLHttpRequest cannot load file~~~~~~~Origin 'null' is theref ...

  2. MySql存储过程—3、变量

    1.变量的定义 在Mysql里面可以像我们写代码中一样定义变量来保持中间结果,看下面的格式: DECLARE variable_name datatype(size) DEFAULT default_ ...

  3. 使用Code::Blocks配置Python编译环境

    1.先在CodeBlock中新建C或C++工程. CodeBlock新建工程步骤:File——New——Project——Console applications——C或C++都可——Project所 ...

  4. 转:更改 centos yum 源

    centos下可以通过yum很方便快捷的安装所需的软件和库,如果yum的源不好,安装速度会非常慢,centos默认官方源似乎都是国外的,所以速度无法保证,我一直使用163的源,感觉速度不错.下面就说说 ...

  5. codemirror 插件

    做在线词典编辑的时候.里面有些自定义标签.类似html标签一样. 为了让编辑编辑.改成了  <动词></动词> 所以引用了 codemirror插件 此插件绝对牛逼 它主要功能 ...

  6. osvdb

    http://www.91ri.org/3117.html http://linux.cn/article-5332-1-rss.html http://www.freebuf.com/article ...

  7. u8818 G300的官方rom刷机包及详细的刷机方法

    之前看到有些机友在找华为u8818的官方rom固件包,在这里我给大家分享一下这个手机的官方原版的固件rom包吧,有2.3的,也有4.0的,大家可以根据自己的需求来下载. 华为U8818官方2.3固件: ...

  8. 一步一步学习SignalR进行实时通信_9_托管在非Web应用程序

    原文:一步一步学习SignalR进行实时通信_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信\_9_托管在非Web应用程序 一步一步学习SignalR进行实时通信_9_托管在非We ...

  9. COJ 3018 求1~n之间的素数

    求1~n之间的素数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述  素数是大于1,且除1和本身以外不能被其他整数所整除的数. ...

  10. -_-#【Mac】快捷操作

    快捷键 command + 拖拽 = 剪切option + 拖拽 = 复制command + option + 拖拽 = 快捷方式 command + ] 前进command + [ 后退 comma ...