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. extjs中datefield组件的使用

    xtype: 'datefield', id: 'dateShangmfa', name: 'dateShangmfa', fieldLabel: '日期',//设置标签文本 editable: fa ...

  2. php对mongo操作问题

    最近由于业务需求,需要使用php对mongo做一些操作,关于mongodb,选择的版本是:MongoDB shell version: 2.0.6 MongoDB是一种文档导向数据库管理系统,由C++ ...

  3. Python新手学习基础之数据结构-对数据结构的认知

    什么是数据结构? 数据结构是指:相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 举个列子来理解这个数据结构: 数据可以比作是书本, 数据结构相当于书架,书存放在书架上, ...

  4. Github上最受关注的前端大牛,快来膜拜吧!

    1. Paul Irish Github主页: https://github.com/paulirish 个人主页: http://paulirish.com 维基百科: http://en.wiki ...

  5. Black Box

    http://poj.org/problem?id=1442 #include<cstdio> #include<algorithm> #include<queue> ...

  6. keil优化论

    谈到优化,其实很多人都哭笑不得,因为在一个C51软件工程师的生涯中,总要被KEIL的优化耍那么一次到几次.我被耍过,想必看着文章的你也被耍过,如果你回答说不,那只能说你写的C51程序不多! 看看KEI ...

  7. 查看堵塞的SQL

    SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.t ...

  8. 【HDOJ】1539 Shredding Company

    DFS. /* 1539 */ #include <iostream> #include <cstdio> #include <cstring> #include ...

  9. Makefile中的wildcard和patsubst

    makefile 里的函数跟它的变量很相似——使用的时候,你用一个 $ 符号跟开括号,函数名,空格后跟一列由逗号分隔的参数,最后用关括号结束.    例如,在 GNU Make 里有一个叫 'wild ...

  10. #include <sys/stat.h>的作用

    #include <sys/stat.h> 文件状态, 是unix/linux系统定义文件状态所在的伪标准头文件. 含有类型与函数: dev_t     st_dev     Device ...