http://hi.baidu.com/tuberose1605/blog/item/501ee319cae4f973dbb4bd32.html

//****************************应用 Demo ***************************

/// <summary>
/// 更新指定图层类型
/// </summary>
/// <param name="TypeID">图层类型编号</param>
/// <param name="TypeName">图层类型名称</param>
/// <param name="LayerName">图层名称</param>
/// <param name="TypeIcon">类型图标</param>
/// <param name="ParentID">父类别编号(0为顶级类别)</param>
/// <param name="ThemeID">单值层编号</param>
public void UpdateLayerType(int TypeID, string TypeName, string LayerName, string TypeIcon, int ParentID, int ThemeID)
{
//定义执行SQL语句所需的参数
OleDbParameter[] parlist ={
oleDbHelper.CreateInParam("@TypeName",OleDbType.Char,255,TypeName),
oleDbHelper.CreateInParam("@LayerName",OleDbType.Char,255,LayerName),
oleDbHelper.CreateInParam("@TypeIcon",OleDbType.Char,255,TypeIcon),
oleDbHelper.CreateInParam("@ParentID",OleDbType.Integer,8,ParentID),
oleDbHelper.CreateInParam("@ThemeID",OleDbType.Integer,8,ThemeID),
oleDbHelper.CreateInParam("@TypeID",OleDbType.Integer,8,TypeID)
};
//定义SQL语句
string sql = "update tb_LayerType set TypeName=@TypeName,LayerName=@LayerName,TypeIcon=@TypeIcon,ParentID=@ParentID,ThemeID=@ThemeID where TypeID=@TypeID";
try
{
//执行SQL语句
oleDbHelper.RunSQL(sql, parlist);
}
catch (Exception ex)
{
//将执行数据库异常写入日志文件
OleDbHelper.SystemError.CreateErrorLog(ex.ToString());
}
}

//****************************OleDbHelper类***************************

using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.ComponentModel;

namespace OleDbHelper
{
/// <summary>
/// OleDbHelper类封装对Access数据库的添加、删除、修改和选择等操作
/// </summary>
public class OleDbHelper
{
/// 连接数据源
private OleDbConnection myConnection = null;
private readonly string RETURNVALUE = "RETURNVALUE";

/// <summary>
/// 打开数据库连接.
/// </summary>
private void Open()
{
// 打开数据库连接
if (myConnection == null)
{
myConnection = new OleDbConnection(ConfigurationSettings.AppSettings["OLEDBCONNECTIONSTRING"].ToString());
}
if (myConnection.State == ConnectionState.Closed)
{
try
{
///打开数据库连接
myConnection.Open();
}
catch (Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭已经打开的数据库连接   
}
}
}

/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
///判断连接是否已经创建
if (myConnection != null)
{
///判断连接的状态是否打开
if (myConnection.State == ConnectionState.Open)
{
myConnection.Close();
}
}
}

/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确认连接是否已经关闭
if (myConnection != null)
{
myConnection.Dispose();
myConnection = null;
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <returns>返回值</returns>
public void RunSQL(string cmdText)
{
OleDbCommand cmd = CreateOleDbCommand(cmdText, null);
try
{
///执行SQL语句
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <returns>返回值</returns>
public void RunSQL(string cmdText, OleDbParameter[] prams)
{
OleDbCommand cmd = CreateOleDbCommand(cmdText, prams);
try
{
///执行SQL语句
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param> 
/// <param name="dataReader">返回DataReader对象</param>
public void RunSQL(string cmdText, out OleDbDataReader dataReader)
{
///创建Command
OleDbCommand cmd = CreateOleDbCommand(cmdText, null);

try
{
///读取数据
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
dataReader = null;
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <param name="dataReader">返回DataReader对象</param>
public void RunSQL(string cmdText, OleDbParameter[] prams, out OleDbDataReader dataReader)
{
///创建Command
OleDbCommand cmd = CreateOleDbCommand(cmdText, prams);

try
{
///读取数据
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
dataReader = null;
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="dataSet">DataSet对象</param>
public void RunSQL(string cmdText, ref DataSet dataSet)
{
if (dataSet == null)
{
dataSet = new DataSet();
}
///创建OleDbDataAdapter
OleDbDataAdapter da = CreateOleDbDataAdapter(cmdText, null);

try
{
///读取数据
da.Fill(dataSet);
}
catch (Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
}

/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <param name="dataSet">DataSet对象</param>
public void RunSQL(string cmdText, OleDbParameter[] prams, ref DataSet dataSet)
{
if (dataSet == null)
{
dataSet = new DataSet();
}
///创建OleDbDataAdapter
OleDbDataAdapter da = CreateOleDbDataAdapter(cmdText, prams);

try
{
///读取数据
da.Fill(dataSet);
}
catch (Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
}

/// <summary>
/// 创建一个OleDbCommand对象以此来执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <returns>返回OleDbCommand对象</returns>
private OleDbCommand CreateOleDbCommand(string cmdText, OleDbParameter[] prams)
{
///打开数据库连接
Open();

///设置Command
OleDbCommand cmd = new OleDbCommand(cmdText, myConnection);

///添加到语句的参数
if (prams != null)
{
foreach (OleDbParameter parameter in prams)
{
cmd.Parameters.Add(parameter);
}
}

///添加返回参数ReturnValue
cmd.Parameters.Add(RETURNVALUE, OleDbType.Integer, 4);

//返回创建的OleDbCommand对象
return cmd;
}

/// <summary>
/// 创建一个OleDbDataAdapter对象,用此来执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <returns>返回OleDbDataAdapter对象</returns>
private OleDbDataAdapter CreateOleDbDataAdapter(string cmdText, OleDbParameter[] prams)
{
///打开数据库连接
Open();

///设置OleDbDataAdapter对象
OleDbDataAdapter da = new OleDbDataAdapter(cmdText, myConnection);

///添加到语句的参数
if (prams != null)
{
foreach (OleDbParameter parameter in prams)
{
da.SelectCommand.Parameters.Add(parameter);
}
}

///添加返回参数ReturnValue
//da.SelectCommand.Parameters.Add(
//    new OleDbParameter(RETURNVALUE, OleDbType.Integer, 4, ParameterDirection.ReturnValue,
//    false, 0, 0, string.Empty, DataRowVersion.Default, null));

///返回创建的OleDbDataAdapter对象
return da;
}

/// <summary>
/// 生成SQL语句参数
/// </summary>
/// <param name="ParamName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter CreateParam(string ParamName, OleDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
OleDbParameter param;

///当参数大小为0时,不使用该参数大小值
if (Size > 0)
{
param = new OleDbParameter(ParamName, DbType, Size);
}
else
{
///当参数大小为0时,不使用该参数大小值
param = new OleDbParameter(ParamName, DbType);
}

///创建输出类型的参数
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
}

///返回创建的参数
return param;
}

/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">参数名称</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的parameter 对象</returns>
public OleDbParameter CreateInParam(string ParamName, OleDbType DbType, int Size, object Value)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
// oleDbHelper.CreateInParam("@TypeName",OleDbType.Char,255,TypeName)
}

/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter CreateOutParam(string ParamName, OleDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}

/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter CreateReturnParam(string ParamName, OleDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
}
}

OleDbHelper类相关推荐

  1. 配置文件中的数据库连接串加密了,你以为我就挖不出来吗?

    一:背景 1. 讲故事 前几天在调试物联柜终端上的一个bug时发现 app.config 中的数据库连接串是加密的,因为调试中要切换数据库,我需要将密文放到专门的小工具上解密,改完连接串上的数据库名, ...

  2. 自己搜集编写的Delphi 通用函数

    { ********************************************************************** } { Currency Common Functio ...

  3. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  4. MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段

    mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...

  5. IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...

    使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...

  6. IDEA自动生成类注解,IDEA作者信息自动生成,IDEA类信息自动生成

    在新建类文件的时候自动生成注解,诸如我们常见的那些 作者,创建时间,TODO 等等 将以下格式的代码放在Settings -> File and Code Templates -> Inc ...

  7. javabean实体类与实体类之间的快速转换

    一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...

  8. 利用dom4j将实体类转换为对应的xml报文

    利用dom4j生成xml报文 目标格式: <?xml version="1.0" encoding="GBK"?><Packet type=& ...

  9. Idea groovy表生成实体类带注释

    Idea groovy表生成实体类带注释 1.点开datasourse,打开idea带的数据库工具,具体添加数据库连接,这里不描述. 这时点击会生成一个poji 这时生成的pojo中是不带中文注释的, ...

最新文章

  1. abaqus中元素过度失真是什么意思_[ABAQUS]非线性收敛问题的六个建议
  2. 解析codepage和charset的含义及其应用
  3. bcrypt如何内置盐?
  4. Java NIO 系列教程 转
  5. redis集群搭建(基于docker)
  6. 向js中添加静态方法与属性方法
  7. 使用jMeter构造大量并发的随机HTTP请求
  8. 求凸函数极值 CSF迭代法(雾)
  9. IntelliJ IDEA:使用Google Guava生成equals,hashCode和toString
  10. 手机编写python程序_Python实现自动上京东抢手机
  11. HttpResponse类
  12. 触动精灵mysql用法_[触动精灵]触动精灵官方手册流水账2
  13. C# 获取当前路径或父路径
  14. 【张量分析】倒三角 微分算子 对 张量场 的作用
  15. MATLAB 画常见二次曲面汇总
  16. 在Ubuntu环境下配置Proxmark3(PM3)使用环境
  17. windows10的etc路径下没有hosts文件
  18. RationalDMIS 7.1 DMIS基本语句
  19. .NET Quartz介绍
  20. 序列标注的BIO标注体系

热门文章

  1. Angular 7 版本
  2. DP Review 1
  3. AutoML初创公司探智立方:模型的物竞天择与适者生存
  4. MySQL主从复制之传统复制与GTID模式之间切换
  5. 【LeetCode】最大子序和
  6. 【数据结构】排序算法总结
  7. 一款不错的网页对话插件
  8. hive 学习之异常篇
  9. 解决mysql导入数据文件过慢的问题
  10. 429 too many requests错误出现在wordpress后台更新及官网的5种解决方法