最新的DBHelper
来源:互联网 发布:tpshop多商户分销源码 编辑:程序博客网 时间:2024/04/30 05:11
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;
namespace ZhiyiHelper
{
public partial class DBHelper
{
/**
* 以下的方法需要在调用的可见区域内:手动(即调用OpenCon(); CloseCon();方法)打开和关闭连接
* 方法注释中有[Notice Con] 或 [Notice Connection] 或方法名中含有“_Other”,则调用的是以下的方法
* */
#region 数据库操作方法
/// <summary>
/// 执行增,删,改命令的方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Execute_Other(string sql, CommandType commandType, params OleDbParameter[] sqlParams)
{
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = commandType;
cmd.CommandTimeout = 180;
SetParams(cmd, sqlParams);
try
{
return cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
}
}
/// <summary>
/// 返回第一行第一列的值[Int]
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteScalar_Int_Other(string sql, CommandType comType, params OleDbParameter[] sqlParams)
{
object reObj = ExecuteScalar_Object_Other(sql, comType, sqlParams);
return reObj == null ? 0 : Convert.ToInt32(reObj);
}
/// <summary>
/// 返回第一行第一列的值[Object]
/// </summary>
/// <returns></returns>
public static object ExecuteScalar_Object_Other(string sql, CommandType comType, params OleDbParameter[] sqlParams)
{
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = comType;
cmd.CommandTimeout = 180;
DBHelper.SetParams(cmd, sqlParams);
try
{
return cmd.ExecuteScalar();
}
catch (OleDbException ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
}
}
/// <summary>
/// 返回OleDbDataReader的方法
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static OleDbDataReader GetReader_Other(string sql, CommandType commandType, params OleDbParameter[] sqlParams)
{
OleDbDataReader reader = null;
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = commandType;
SetParams(cmd, sqlParams);
try
{
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
}
return reader;
}
/// <summary>
/// 返回OleDbDataReader的方法 [reader和数据库连接都需要显示关闭]
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static OleDbDataReader GetReader_Other2(string sql, CommandType commandType, params OleDbParameter[] sqlParams)
{
OleDbDataReader reader = null;
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = commandType;
SetParams(cmd, sqlParams);
try
{
reader = cmd.ExecuteReader();
}
catch (Exception ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
}
return reader;
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran_Other(List<string> SQLStringList)
{
if (SQLStringList == null || SQLStringList.Count == 0)
return;
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conObject;
cmd.CommandType = CommandType.Text;
OleDbTransaction tx = conObject.BeginTransaction();
cmd.Transaction = tx;
try
{
string sql = String.Empty;
for (int n = 0; n < SQLStringList.Count; n++)
{
sql = SQLStringList[n];
if (sql.Trim().Length > 1)
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException e)
{
tx.Rollback();
throw e;
}
finally
{
//释放资源
if (tx != null)
{
tx.Dispose();
tx = null;
}
DisponseCmd(cmd);
}
}
/// <summary>
/// 关闭和释放数据读取器
/// </summary>
/// <param name="reader"></param>
public static void CloseReader(OleDbDataReader reader)
{
if (reader != null && reader.IsClosed)
{
reader.Dispose();
reader.Close();
reader = null;
}
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.OleDb;
using System.Data;
using System.Configuration;
namespace ZhiyiHelper
{
public partial class DBHelper
{
private static string connstr = String.Empty;
private static OleDbConnection conObject = null;
public DBHelper()
{
}
#region 基础方法
/// <summary>
/// 获取连接字符串的属性
/// </summary>
private static string Connstr
{
get
{
if (connstr == String.Empty)
{
connstr = ConfigHelper.GetConnectionStringsString("accessConSql");
connstr = GetConnString();
}
return connstr;
}
}
/// <summary>
/// 得到数据库连接方法
/// </summary>
/// <returns>数据库连接</returns>
private static void Getconn()
{
if (conObject == null)
conObject = new OleDbConnection(Connstr);
}
/// <summary>
/// 获得并打开数据库连接方法
/// </summary>
/// <returns></returns>
public static void OpenCon()
{
Getconn();
if (conObject.State == ConnectionState.Open)
return;
if (conObject.State != ConnectionState.Closed)
conObject.Close();
conObject.Open();
}
/// <summary>
/// 关闭数据库连接方法
/// </summary>
public static void CloseCon()
{
if (conObject != null && conObject.State != ConnectionState.Closed)
conObject.Close();
}
#endregion
#region 数据库操作方法
public static int GetMaxID(string FieldName, string TableName)
{
string strsql = "select max(" + FieldName + ") from " + TableName;
try
{
return GetScalar(strsql);
}
catch (OleDbException ex)
{
throw ex;
}
}
/// <summary>
/// 删除制定表中的一个字段(文本列)
/// </summary>
/// <param name="colName"></param>
/// <param name="TableName"></param>
public static void DelColumn(string colName, string TableName)
{
if (string.IsNullOrEmpty(colName.Trim()))
return;
try
{
Execute("alter table ["+TableName+"] drop COLUMN ["+colName+"]");
}
catch (OleDbException ex)
{
throw ex;
}
}
/// <summary>
/// 在制定表中添加一个字段(文本列)
/// </summary>
/// <param name="colName"></param>
/// <param name="TableName"></param>
public static void AddColumn(string colName, string TableName)
{
try
{
Execute("ALTER TABLE " + TableName + " ADD COLUMN " + colName + " TEXT(100)");//TEXT不加长度,则为此字段类型的默认最大长度
}
catch (OleDbException ex)
{
throw ex;
}
}
/// <summary>
/// 在制定表中添加一个字段(数字(double)列)
/// </summary>
/// <param name="colName"></param>
/// <param name="TableName"></param>
public static void AddColumn_Double(string colName, string TableName)
{
try
{
Execute("ALTER TABLE " + TableName + " ADD COLUMN " + colName + " Double DEFAULT 0");
}
catch (OleDbException ex)
{
throw ex;
}
}
/// <summary>
/// 执行增,删,改命令的方法(一) [非存储过程SQL]
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Execute(string sql)
{
return Execute(sql, CommandType.Text);
}
/// <summary>
/// 执行增,删,改命令的方法(二)
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Execute(string sql, CommandType commandType, params OleDbParameter[] sqlParams)
{
OpenCon();
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = commandType;
cmd.CommandTimeout = 180;
SetParams(cmd, sqlParams);
try
{
return cmd.ExecuteNonQuery();
}
catch (OleDbException ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
CloseCon();
}
}
/// <summary>
/// 执行增,删,改命令的方法 ----重载方法 [存储过程]
/// </summary>
/// <param name="sql">存储过程名</param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static int Execute(string sql, params OleDbParameter[] sqlParams)
{
return Execute(sql, CommandType.StoredProcedure, sqlParams);
}
/// <summary>
/// 返回第一行第一列的值
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteScalar(string sql, CommandType comType, params OleDbParameter[] sqlParams)
{
object reObj = ExecuteScalar1(sql, comType, sqlParams);
return reObj == null ? 0 : Convert.ToInt32(reObj);
}
/// <summary>
/// 返回第一行第一列的值 ----非存储过程SQL查询方法
/// </summary>
/// <param name="sql"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static int GetScalar(string sql, params OleDbParameter[] sqlParams)
{
return ExecuteScalar(sql, CommandType.Text, sqlParams);
}
/// <summary>
/// 返回第一行第一列的值 ----[存储过程]重载方法
/// </summary>
/// <param name="sql">存储过程名</param>
/// <returns></returns>
public static int ExecuteScalar(string sql, params OleDbParameter[] sqlParams)
{
return ExecuteScalar(sql, CommandType.StoredProcedure, sqlParams);
}
/// <summary>
/// 返回第一行第一列的值[Object]
/// </summary>
/// <returns></returns>
public static object ExecuteScalar1(string sql, CommandType comType, params OleDbParameter[] sqlParams)
{
OpenCon();
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = comType;
cmd.CommandTimeout = 180;
DBHelper.SetParams(cmd, sqlParams);
try
{
return cmd.ExecuteScalar();
}
catch (OleDbException ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
CloseCon();
}
}
/// <summary>
/// 返回第一行第一列的值 ----[存储过程]重载方法
/// </summary>
/// <param name="sql">存储过程名</param>
/// <returns></returns>
public static Object ExecuteScalar2(string sql, params OleDbParameter[] sqlParams)
{
return ExecuteScalar1(sql, CommandType.StoredProcedure, sqlParams);
}
/// <summary>
/// 执行增,删,改命令的方法 ----非存储过程SQL查询方法
/// </summary>
/// <param name="sql"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static void ExecuteCommand(string sql, params OleDbParameter[] sqlParams)
{
Execute(sql, CommandType.Text, sqlParams);
}
/// <summary>
/// 查询返回数据表的方法 ---非存储过程SQL查询方法
/// </summary>
/// <param name="sql">Sql语句</param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static DataTable GetTable(string sql)
{
return GetTable(sql, CommandType.Text);
}
/// <summary>
/// 查询返回数据表的重载方法
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static DataTable GetTable(string sql, CommandType commandType, params OleDbParameter[] sqlParams)
{
DataSet dataSet = null;
Getconn();
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = commandType;
SetParams(cmd, sqlParams);
OleDbDataAdapter adp = new OleDbDataAdapter();
adp.SelectCommand = cmd;
try
{
dataSet = new DataSet();
adp.Fill(dataSet, "table");
}
catch (Exception ex)
{
throw ex;
}
finally
{
//释放资源
DisponseAdp(adp);
DisponseCmd(cmd);
CloseCon();
}
if (dataSet != null && dataSet.Tables[0] != null)
return dataSet.Tables[0];
return null;
}
/// <summary>
/// 查询返回数据表的重载方法 ---非存储过程SQL
/// </summary>
/// <param name="sql"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static DataTable GetTable(string sql, params OleDbParameter[] sqlParams)
{
return GetTable(sql, CommandType.Text, sqlParams);
}
/// <summary>
/// 返回OleDbDataReader的方法
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static OleDbDataReader GetReader(string sql, CommandType commandType, params OleDbParameter[] sqlParams)
{
OleDbDataReader reader = null;
OpenCon();
OleDbCommand cmd = new OleDbCommand(sql, conObject);
cmd.CommandType = commandType;
SetParams(cmd, sqlParams);
try
{
reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
throw ex;
}
finally
{
//释放资源
DisponseCmd(cmd);
}
return reader;
}
/// <summary>
/// 返回OleDbDataReader的方法 ---非存储过程的SQL语句 ---重载
/// </summary>
/// <param name="sql"></param>
/// <param name="sqlParams"></param>
/// <returns></returns>
public static OleDbDataReader GetReader(string sql, params OleDbParameter[] sqlParams)
{
return GetReader(sql, CommandType.Text, sqlParams);
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static void ExecuteSqlTran(List<string> SQLStringList)
{
if (SQLStringList == null || SQLStringList.Count == 0)
return;
OpenCon();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conObject;
cmd.CommandType = CommandType.Text;
OleDbTransaction tx = conObject.BeginTransaction();
cmd.Transaction = tx;
try
{
string sql = String.Empty;
for (int n = 0; n < SQLStringList.Count; n++)
{
sql = SQLStringList[n];
if (sql.Trim().Length > 1)
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException e)
{
tx.Rollback();
throw e;
}
finally
{
//释放资源
if (tx != null)
{
tx.Dispose();
tx = null;
}
DisponseCmd(cmd);
CloseCon();
}
}
/// <summary>
/// 设置命令中参数的方法
/// </summary>
/// <param name="cmd"></param>
/// <param name="sqlParams"></param>
private static void SetParams(OleDbCommand cmd, params OleDbParameter[] sqlParams)
{
if (sqlParams != null && sqlParams.Length > 0)
cmd.Parameters.AddRange(sqlParams);
}
#endregion
#region 释放资源的方法
private static void DisponseCmd(OleDbCommand cmd)
{
if (cmd != null)
{
cmd.Dispose();
cmd = null;
}
}
private static void DisponseAdp(OleDbDataAdapter adp)
{
if (adp != null)
{
adp.Dispose();
adp = null;
}
}
#endregion
}
}
- 最新的DBHelper
- 实用的DBHelper
- Mysql的DBHelper.cs
- Access的DBHelper.cs
- DBHelper类的编写
- 好用的DBHelper
- DBHelper的万变不离其宗
- 初级的DBHelper
- 微软通用的DBHelper
- DBHelper的一个示例
- 我的DBHelper
- java 的DBHelper类型
- 一个简单的DBHelper
- 简单的DBHelper类
- Oracle的DBHelper
- DBhelper的使用
- DBHelper
- DBHelper
- 用函数实现单链表翻转的算法
- 看Oracle表空间大小--已经使用的百分比
- 了解 ASP.NET AJAX 本地化(四)
- vb.net异步查询方式一
- ASP操作XML
- 最新的DBHelper
- C语言:结构体
- 了解 ASP.NET AJAX Web 服务(五)
- VS2005调试dll时提示:“当前不会命中断点,因为还没有为该文档加载任何符号”解决方法From Eric Qu
- flex中date和string之间的类型转换
- 史上最牛逼的Eclipse快捷键大全
- JS正则表达式
- hp laserjet p4010_p4510驱动
- 在c++中返回数组