AccessHelper
原文: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相关推荐
- AccessHelper.cs
using System; using System.Data; using System.Data.OleDb; namespace AccessDAL { /// <summary& ...
- C# access update 出错总结,注意事项
简单的说 access 神经病的 update 时传参数要按顺序传 错误: OleDbParameter[] parameters = new OleDbParameter[]{AccessHelpe ...
- 快速实现dNet三层架构项目图解
开发工具使用SharpDevelop,示例数据库使用微软提供的Northwind.mdb英文版:搭建dNet三层架构项目: 新建UI层:这层可以是web,也可以是form:这里使用form: 新建三个 ...
- C#访问Access完整增删改查代码
以下代码都经过实践测试可用: 首先是AccessHelper.cs,网上有下载,下面附送一份: using System; using System.Collections.Generic; usin ...
- BootstrapTable(附源码) Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。...
引用的css: <link href="@Url.Content("~/Css/bootstrap.min.css")" rel="styles ...
- C# 操作 access 数据库2
随笔: (1) 命名空间 using System.Data.OleDb; (2) 连接字符串 private staticstring connStr = @"Provider= ...
- C#操作Access数据库
本教程介绍了如何通过ADO.NET的OleDb相关类来操作Access数据库的相关步骤. 1 软件环境 开发平台:Microsoft Visual Studio 2010 数据库:Micros ...
- 不喜欢写测试的朋友看过来,与你分享写测试的经验 做一个爱写测试的程序员...
自从掌握了单元测试的要领之后,经常写测试,做测试,也非常喜欢做单元测试.我的文章<数据采集:完美下载淘宝Ip数据库 简单的程序节省60元人民币而不必购买数据库>中的代码,也是个测试方法,源 ...
- 说说“数据库的自动安装、升级” [转]
数据库的自动安装.升级是一个非常实用的功能,在初次安装软件,升级软件的时候可以节省大量的时间和无趣的工作,而且也节省了给用户写数据库升级指导的说明. 要实现数据库的自动安装.升级,其实并不难.我们在肥 ...
- Access SqLDbHelper
/// <summary> /// 连接Access数据库帮助 /// <appSettings> /// <add key="DbPath" ...
最新文章
- R语言使用pwr包的pwr.t.test函数对分组样本数相同的t检验进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、样本量的情况下计算假设检验的效用值
- 预告丨2018年值得关注的200场机器学习会议
- PMP_PMP考试须知
- 显示一个屏幕,隐藏其他屏幕
- 如何安装Windows10+CentOS7双系统_自用成功版——注意看评论的注意事项
- Android BLE(1)---蓝牙通讯学习
- 2.10 m 个样本的梯度下降
- Jenkins快速介绍及自动化构建实战
- 一个卖了1300的Java程序引发的深思
- 用vue-cli+iview做项目不兼容ie问题
- 最简单的《域中隔离用户的FTP站点》详解
- ORACLE AWR报告生成过程出现多个实例记录分析
- 多功能域名检测集合工具
- BZOJ 1069 最大土地面积(旋转卡壳求最大四边形)
- 如何从本地硬盘启动计算机,解密:如何在计算机BIOS中设置硬盘启动
- 程序员需要了解的先秦文学
- 中国十大1至3岁童车品牌辐轮王土拨鼠世界儿童自行车品牌排行榜
- Google退出内地市场
- 《iOS开发进阶》读书笔记
- macOS更新失败解决
热门文章
- paip.silverlight设计器载入异常NullReferenceException问题。
- 海底捞张勇:谈钱,才是对员工最好的尊重
- Julia: DataFrame最大的好处是对NA的处理和对象化操作!
- 新兴IT企业特斯拉(三)——Model S
- 毕设题目:Matlab图像修复
- 【手掌识别】基于matlab形态学手掌长宽检测【含Matlab源码 1382期】
- 【RGB检测】基于matlab GUI图像RGB检测【含Matlab源码 088期】
- android 设置屏幕固定位置,Android 关于dialog的显示位置设置
- 机械工程人工智能_机械工程中的人工智能
- Mongodb新手看这一篇就够了