原文:AccessHelper

代码:

using System;
using System.Data;
using System.Configuration;
using System.Data.OleDb;
using ahwildlife.Utils;/// <summary>
/// AccessHelper 的摘要说明
/// </summary>
public class AccessHelper
{#region 变量protected static OleDbConnection conn = new OleDbConnection();protected static OleDbCommand comm = new OleDbCommand();protected static string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ahwildlife.mdb;Persist Security Info=False;Jet OLEDB:Database Password=sa;";#endregion#region 构造函数/// <summary>/// 构造函数/// </summary>public AccessHelper(){}#endregion#region 打开数据库/// <summary>/// 打开数据库/// </summary>private static void openConnection(){if (conn.State == ConnectionState.Closed){conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ahwildlife.mdb;Persist Security Info=False;Jet OLEDB:Database Password=sa;";comm.Connection = conn;try{conn.Open();}catch (Exception ex){throw new Exception(ex.Message);}}}#endregion#region 关闭数据库/// <summary>/// 关闭数据库/// </summary>private static void closeConnection(){if (conn.State == ConnectionState.Open){conn.Close();conn.Dispose();comm.Dispose();}}#endregion#region 执行sql语句/// <summary>/// 执行sql语句/// </summary>public static void ExecuteSql(string sqlstr){try{openConnection();comm.CommandType = CommandType.Text;comm.CommandText = sqlstr;comm.ExecuteNonQuery();}catch (Exception ex){throw new Exception(ex.Message);}finally{closeConnection();}}#endregion#region 返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。/// <summary>/// 返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。/// </summary>public static OleDbDataReader DataReader(string sqlstr){OleDbDataReader dr = null;try{openConnection();comm.CommandText = sqlstr;comm.CommandType = CommandType.Text;dr = comm.ExecuteReader(CommandBehavior.CloseConnection);}catch{try{dr.Close();closeConnection();}catch { }}return dr;}#endregion#region 返回指定sql语句的OleDbDataReader对象,使用时请注意关闭/// <summary>/// 返回指定sql语句的OleDbDataReader对象,使用时请注意关闭/// </summary>public static void DataReader(string sqlstr, ref OleDbDataReader dr){try{openConnection();comm.CommandText = sqlstr;comm.CommandType = CommandType.Text;dr = comm.ExecuteReader(CommandBehavior.CloseConnection);}catch{try{if (dr != null && !dr.IsClosed)dr.Close();}catch{}finally{closeConnection();}}}#endregion#region 返回指定sql语句的DataSet/// <summary>/// 返回指定sql语句的DataSet/// </summary>/// <param name="sqlstr"></param>/// <returns></returns>public static DataSet DataSet(string sqlstr){DataSet ds = new DataSet();OleDbDataAdapter da = new OleDbDataAdapter();try{openConnection();comm.CommandType = CommandType.Text;comm.CommandText = sqlstr;da.SelectCommand = comm;da.Fill(ds);}catch (Exception e){throw new Exception(e.Message);}finally{closeConnection();}return ds;}#endregion#region 返回指定sql语句的DataSet/// <summary>/// 返回指定sql语句的DataSet/// </summary>/// <param name="sqlstr"></param>/// <param name="ds"></param>public static void DataSet(string sqlstr, ref DataSet ds){OleDbDataAdapter da = new OleDbDataAdapter();try{openConnection();comm.CommandType = CommandType.Text;comm.CommandText = sqlstr;da.SelectCommand = comm;da.Fill(ds);}catch (Exception e){throw new Exception(e.Message);}finally{closeConnection();}}#endregion#region 返回指定sql语句的DataTable/// <summary>/// 返回指定sql语句的DataTable/// </summary>/// <param name="sqlstr"></param>/// <returns></returns>public static DataTable DataTable(string sqlstr){DataTable dt = Common.GetDataTableCache(sqlstr);//读缓存if (dt != null){return dt.Copy();}else{dt = new DataTable();OleDbDataAdapter da = new OleDbDataAdapter();try{using (OleDbConnection conn = new OleDbConnection()){conn.ConnectionString = connectionString;conn.Open();using (OleDbCommand comm = new OleDbCommand()){comm.Connection = conn;comm.CommandType = CommandType.Text;comm.CommandText = sqlstr;da.SelectCommand = comm;da.Fill(dt);}}}catch (Exception e){throw new Exception(e.Message);}finally{closeConnection();}Common.InsertDataTableCache(sqlstr, dt);//添加缓存return dt.Copy();}}#endregion#region 返回指定sql语句的DataTable/// <summary>/// 返回指定sql语句的DataTable/// </summary>public static void DataTable(string sqlstr, ref DataTable dt){OleDbDataAdapter da = new OleDbDataAdapter();try{openConnection();comm.CommandType = CommandType.Text;comm.CommandText = sqlstr;da.SelectCommand = comm;da.Fill(dt);}catch (Exception e){throw new Exception(e.Message);}finally{closeConnection();}}#endregion#region 返回指定sql语句的DataView/// <summary>/// 返回指定sql语句的DataView/// </summary>/// <param name="sqlstr"></param>/// <returns></returns>public static DataView DataView(string sqlstr){OleDbDataAdapter da = new OleDbDataAdapter();DataView dv = new DataView();DataSet ds = new DataSet();try{openConnection();comm.CommandType = CommandType.Text;comm.CommandText = sqlstr;da.SelectCommand = comm;da.Fill(ds);dv = ds.Tables[0].DefaultView;}catch (Exception e){throw new Exception(e.Message);}finally{closeConnection();}return dv;}#endregion}

View Code

AccessHelper相关推荐

  1. AccessHelper.cs

    using System; using System.Data; using System.Data.OleDb; namespace AccessDAL {     /// <summary& ...

  2. C# access update 出错总结,注意事项

    简单的说 access 神经病的 update 时传参数要按顺序传 错误: OleDbParameter[] parameters = new OleDbParameter[]{AccessHelpe ...

  3. 快速实现dNet三层架构项目图解

    开发工具使用SharpDevelop,示例数据库使用微软提供的Northwind.mdb英文版:搭建dNet三层架构项目: 新建UI层:这层可以是web,也可以是form:这里使用form: 新建三个 ...

  4. C#访问Access完整增删改查代码

    以下代码都经过实践测试可用: 首先是AccessHelper.cs,网上有下载,下面附送一份: using System; using System.Collections.Generic; usin ...

  5. BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。...

    引用的css: <link href="@Url.Content("~/Css/bootstrap.min.css")" rel="styles ...

  6. C# 操作 access 数据库2

    随笔: (1)   命名空间 using System.Data.OleDb; (2)   连接字符串 private staticstring connStr = @"Provider= ...

  7. C#操作Access数据库

    本教程介绍了如何通过ADO.NET的OleDb相关类来操作Access数据库的相关步骤. 1     软件环境 开发平台:Microsoft Visual Studio 2010 数据库:Micros ...

  8. 不喜欢写测试的朋友看过来,与你分享写测试的经验 做一个爱写测试的程序员...

    自从掌握了单元测试的要领之后,经常写测试,做测试,也非常喜欢做单元测试.我的文章<数据采集:完美下载淘宝Ip数据库 简单的程序节省60元人民币而不必购买数据库>中的代码,也是个测试方法,源 ...

  9. 说说“数据库的自动安装、升级” [转]

    数据库的自动安装.升级是一个非常实用的功能,在初次安装软件,升级软件的时候可以节省大量的时间和无趣的工作,而且也节省了给用户写数据库升级指导的说明. 要实现数据库的自动安装.升级,其实并不难.我们在肥 ...

  10. Access SqLDbHelper

    /// <summary> /// 连接Access数据库帮助 /// <appSettings> ///     <add key="DbPath" ...

最新文章

  1. R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、样本量的情况下计算假设检验的效用值
  2. 预告丨2018年值得关注的200场机器学习会议
  3. PMP_PMP考试须知
  4. 显示一个屏幕,隐藏其他屏幕
  5. 如何安装Windows10+CentOS7双系统_自用成功版——注意看评论的注意事项
  6. Android BLE(1)---蓝牙通讯学习
  7. 2.10 m 个样本的梯度下降
  8. Jenkins快速介绍及自动化构建实战
  9. 一个卖了1300的Java程序引发的深思
  10. 用vue-cli+iview做项目不兼容ie问题
  11. 最简单的《域中隔离用户的FTP站点》详解
  12. ORACLE AWR报告生成过程出现多个实例记录分析
  13. 多功能域名检测集合工具
  14. BZOJ 1069 最大土地面积(旋转卡壳求最大四边形)
  15. 如何从本地硬盘启动计算机,解密:如何在计算机BIOS中设置硬盘启动
  16. 程序员需要了解的先秦文学
  17. 中国十大1至3岁童车品牌辐轮王土拨鼠世界儿童自行车品牌排行榜
  18. Google退出内地市场
  19. 《iOS开发进阶》读书笔记
  20. macOS更新失败解决

热门文章

  1. paip.silverlight设计器载入异常NullReferenceException问题。
  2. 海底捞张勇:谈钱,才是对员工最好的尊重
  3. Julia: DataFrame最大的好处是对NA的处理和对象化操作!
  4. 新兴IT企业特斯拉(三)——Model S
  5. 毕设题目:Matlab图像修复
  6. 【手掌识别】基于matlab形态学手掌长宽检测【含Matlab源码 1382期】
  7. 【RGB检测】基于matlab GUI图像RGB检测【含Matlab源码 088期】
  8. android 设置屏幕固定位置,Android 关于dialog的显示位置设置
  9. 机械工程人工智能_机械工程中的人工智能
  10. Mongodb新手看这一篇就够了