Access数据库访问类 帮助类
原文发布时间为:2009-10-28 —— 来源于本人的百度文章 [由搬家工具导入]
using System;
using System.Data;
using System.Data.OleDb;
public class AccessHelper
{
private string configName = string.Empty;
public AccessHelper()
{
this.configName = "conn";//默认值
}
/// <summary>
/// 实例化。http://hi.baidu.com/handboy
/// </summary>
/// <param name="ConfigName">配置文件Add的name属性值。</param>
public AccessHelper(string ConfigName)
{
this.configName = ConfigName;
}
/// <summary>
/// 数据库连接。
/// </summary>
private string ConnectionValue
{
get
{
return System.Configuration.ConfigurationManager.ConnectionStrings[configName].ConnectionString;
}
}
/// <summary>
/// 用于执行一段SQL语句。
/// default Command type is text
/// </summary>
/// <param name="cmdText">command的字符串 (SQL Statement)</param>
/// <param name="cmdParms">参数列表 (Paramters)</param>
/// <returns>返回影响行数 (effect line number)</returns>
public int ExecuteNonQuery(string cmdText, params OleDbParameter[] cmdParms)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
{
PrepareCommand(cmd, conn, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
/// 用于执行一段SQL语句。
/// To excute a SQL statement, which reuturns a integer stand for effect line number.
/// </summary>
/// <param name="cmdType">command的字符串 (SQL Statement)</param>
/// <returns>返回影响行数 (effect line number)</returns>
public int ExecuteNonQuery(string cmdText)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
{
PrepareCommand(cmd, conn,cmdText, null);
int val = cmd.ExecuteNonQuery();
return val;
}
}
/// <summary>
/// 用于执行一个Select语句返回一个datareader
/// To excute a SQL statement, and reuturns a dataReader.
/// default command type is text
/// </summary>
/// <param name="cmdText">command的字符串 (SQL Statement)</param>
/// <param name="cmdParms">参数列表 (Paramters)</param>
/// <returns>datareader</returns>
public OleDbDataReader ExecuteReader(string cmdText, params OleDbParameter[] cmdParms)
{
OleDbCommand cmd = new OleDbCommand();
OleDbConnection conn = new OleDbConnection(ConnectionValue);
// we use a try/catch here because if the method throws an exception we want to
// close the connection throw code, because no datareader will exist, hence the
// commandBehaviour.CloseConnection will not work
try
{
PrepareCommand(cmd, conn,cmdText, cmdParms);
OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}
/// <summary>
/// 用于执行一个Select语句返回一个datareader
/// To excute a SQL statement, and reuturns a dataReader.
/// </summary>
/// <param name="cmdType">command的字符串 (SQL Statement)</param>
/// <returns>dataReader</returns>
public OleDbDataReader ExecuteReader(string cmdText)
{
OleDbCommand cmd = new OleDbCommand();
OleDbConnection conn = new OleDbConnection(ConnectionValue);
// we use a try/catch here because if the method throws an exception we want to
// close the connection throw code, because no datareader will exist, hence the
// commandBehaviour.CloseConnection will not work
try
{
PrepareCommand(cmd, conn, cmdText, null);
OleDbDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return rdr;
}
catch
{
conn.Close();
throw;
}
}
/// <summary>
/// 用于读取一个值,查询所返回的是结果集中第一行的第一列
/// To excute a SQL statement, and returns the first column of the first line
/// Default command type is text
/// </summary>
/// <param name="cmdText">command的字符串 (SQL Statement)</param>
/// <param name="cmdParms">参数列表 (Paramters)</param>
/// <returns>the first column of the first line</returns>
public string ExecuteScalar(string cmdText, params OleDbParameter[] cmdParms)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
{
PrepareCommand(cmd, conn,cmdText, cmdParms);
string val = Convert.ToString(cmd.ExecuteScalar());
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
/// 用于读取一个值,查询所返回的是结果集中第一行的第一列
/// To excute a SQL statement, and returns the first column of the first line
/// </summary>
/// <param name="cmdType">command的字符串 (SQL Statement)</param>
/// <param name="cmdText">command的类型,具体见:CommandType (Command type)</param>
/// <param name="cmdParms">参数列表 (Paramters)</param>
/// <returns>the first column of the first line</returns>
public string ExecuteScalar(string cmdText)
{
OleDbCommand cmd = new OleDbCommand();
using (OleDbConnection conn = new OleDbConnection(ConnectionValue))
{
PrepareCommand(cmd, conn, cmdText, null);
string val = Convert.ToString(cmd.ExecuteScalar());
return val;
}
}
/// <summary>
/// 在执行SQL语句之前的准备工作
/// </summary>
/// <param name="cmd">command</param>
/// <param name="conn">connection</param>
/// <param name="cmdType">command类型</param>
/// <param name="cmdText">command字符串</param>
/// <param name="cmdParms">参数列表</param>
private static void PrepareCommand(OleDbCommand cmd, OleDbConnection conn, string cmdText, OleDbParameter[] cmdParms)
{
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (cmdParms != null)
{
foreach (OleDbParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
}
}
Access数据库访问类 帮助类的更多相关文章
- C# 对Access数据库操作的通用类
(转载自博主Jerry很简单) //Access数据库-C# 操作类 代码using System;using System.Collections.Generic;using System.Linq ...
- Access数据库的常用数据类型和alter的用法
一.Access比较常用的数据类型:文本.备注.数字.日期/时间.货币 意思 Sql Access 1)文本 nvarchar(30) ...
- c# vs2010 连接access数据库
第一次在博客园写博文,由于文采不怎么好,即使是自己很熟悉的东西,写起来也会感觉到不知从何讲起,我想写的多了就好了. 这篇文章主要是介绍怎么用c# 语言 vs2010连接access数据库的,连接字符串 ...
- c# vs2010 连接access数据库(转)
第一次在博客园写博文,由于文采不怎么好,即使是自己很熟悉的东西,写起来也会感觉到不知从何讲起,我想写的多了就好了. 这篇文章主要是介绍怎么用c# 语言 vs2010连接access数据库的,连接字符串 ...
- 使用SQLite数据库和Access数据库的一些经验总结
在我的<Winform开发框架>中,可使用多种数据库作为程序的数据源,除了常规的Oracle数据库.SqlServer.MySql数据库,其中还包括了SQLite数据库.Access数据库 ...
- C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]
原文链接 //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using Sy ...
- C#---数据库访问通用类、Access数据库操作类、mysql类 .
//C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System. ...
- C# ACCESS数据库操作类
这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的调用可以参考MSSQL那个类的调用,差不多的,只是提取所有记录的数量的时候有多一个参数,这个需要注意一下! usi ...
- ACCESS数据库C#操作类(包含事务)
转自http://blog.csdn.net/allen3010/article/details/6336717 这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的 ...
随机推荐
- 爬虫学习(八)——带cookie的网页进行爬取
# 前提:# # 通常,很多网站需要登录才能进行浏览,所以在爬取这些网站时,也需要进行登录,并拿取登录时的cookie# # 登录网页,服务器会给客户端一个牌子cookie# # 访问登录页面时,带着 ...
- js数组中去重对象
var allCourses = new Array();var coursesId = new Array();function findCourses() { Courses.data().eac ...
- java设计模式2--工厂模式
1.工厂模式特点 可以工厂获取我们所需要的类.我们不需要知道工厂的内部是如何实现的,我们只需要告诉工厂我们需要哪个类,工厂就会自动返回我想要的类. 简单来说:工厂帮我们隐藏了复杂的逻辑处理过程,我们只 ...
- 绘制弧形:imagearc() 说明:三点钟的位置是起点(0度
<?php //1. 绘制图像资源(创建一个画布) $image = imagecreatetruecolor(500, 300); //2. 先分配一个绿色 $green = imagecol ...
- day 63 Django基础九之中间件
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...
- kubernetes中使用ServiceAccount创建kubectl config 文件
在kubernetes 为不同的项目创建了不同的SerivceAccount,那么如何通过ServiceAccount创建 kubectl config文件呢?使用下面脚本即可 # your serv ...
- Kubernetes master服务定制编译docker镜像
前言 之前部署了Kubernetes 1.13.0,发现master服务的启动方式与1.10.4版本有所区别,kube-apiserver.kube-controller-manager和kube-s ...
- DiyCode开源项目 AboutActivity分析
1.首先看一下效果 这是手机上显示的效果: 1.1首先是一个标题栏,左侧一个左箭头,然后一个图标. 1.2然后下方是一个可以滑动的页面. 1.3分成了7个部分. 1.4DiyCode的图标. 1.5然 ...
- AutoMapper教程
http://www.cnblogs.com/gc2013/p/4487567.html http://www.qeefee.com/article/automapper
- 【LeetCode】Merge Two Sorted Lists(合并两个有序链表)
这道题是LeetCode里的第21道题. 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1-&g ...