数据库操作封装类 DBHelper.cs
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的更多相关文章
- 编写Java程序,在维护英雄数据的业务过程中复用数据库操作封装类
返回本章节 返回作业目录 需求说明: 继续完善英雄信息系统,将HeroAccess类中数据库连接相关代码独立出来,并将其封闭成数据库操作工具类DbConnection,便于管理和代码复用. 在Hero ...
- java工具类--数据库操作封装类
java对数据库操作简单处理,如下代码即可,封装了 增删改查及获取连接.关闭连接. 代码如下: package com.test; import java.sql.Connection; import ...
- php数据库操作封装类
<?php /** * Desc: php操作mysql的封装类 * Author zhifeng * Date: 2015/04/15 * 连接模式:PDO */ class MMysql { ...
- 打造 通用的 支持多数据库 操作的 DBHelper
闲来无事,写一个通用的直持多数据库的DBHelper,支持单连接批量执行SQL 因为用了TransactionScope所以请引用System.TransactionScope.dll 代码尚未测试, ...
- 开发C# .net时使用的数据库操作类SqlHelp.cs
练习开发WPF程序的时候,是这样写的,虽然很简单,相必很多新手会用到,所以拿来共享一下, using System; using System.Collections.Generic; using S ...
- [Android] Sqlite 数据库操作 工具封装类
sqlite 数据库封装类 DatabaseUtil.java(封装的类) package com.jack.androidbase.tools; import android.content.Con ...
- Oracle数据库操作类及连接方法
创建DataBaseAccess引用库下面包括DBConnectionString.cs,DBType.cs ,SysName.cs 三个类 DBConnectionString: using Sys ...
- ABP创建数据库操作步骤
1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
随机推荐
- CSS布局:div高度随窗口变化而变化(BUG会有滚动条)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [Git]Git远程仓库
1.创建ssh key 查看主目录下面 C:\Users\Administrator\.ssh 是否存在 id_rsa 和 id_rsa.pub 文件,如果不存在需要generate new key. ...
- JQUERY1.9学习笔记 之内容过滤器(一) 包含选择器
描述:选择包含指定文本的所有元素.jQuery( ":contains(text)" ) text:一串大小写敏感的文本. 例:找出所有包含"john"的div ...
- 用zepto找到当前被选中的option
$("#dealer").find("option").not(function(){ return !this.selected }).text(); 神奇的 ...
- GFStableList Adapter
STL中,list的优点是插入.删除性能极佳(时间复杂度只需O(1)即可),而且非常重要的在删除节点后,其迭代器不失效,但list查找却不擅长.map由于其实现的数据结构为rb-tree,因此,其插入 ...
- Apache 相关配置
1. HTTP缓存设置 ExpiresActive On #ExpiresDefault 设置全局缓存时间,将导致一些get请求不能连续执行 #ExpiresDefault "access ...
- 简单对比Spark和Storm
2013年参与开发了一个类似storm的自研系统, 2014年使用过spark 4个多月,对这两个系统都有一些了解. 下面是我关于这两个系统的简单对比: Spark: 1. 基于数据并行,https: ...
- pl/sql 程序块里打印问题
declare v_number NUMBER; v_number2 NUMBER; begin select count(*) into v_number from dual; DBMS_OUTPU ...
- 多线程同步、异步(BeginInvoke)
一.线程的基础知识 1 System.Threading.Thread类 System.Threading.Thread是用于控制线程的基础类,通过Thread可以控制当前应用程序域中线程的创建.挂起 ...
- vs2010旗舰版产品密钥
Microsoft Visual Studio 2010(VS2010)正式版 CDKEY / SN: YCFHQ-9DWCY-DKV88-T2TMH-G7BHP 企业版.旗舰版都适用