[C#]AccessUtils
关键代码:
using System;
using System.Data;
using System.Data.OleDb;
namespace CSharpUtilHelpV2
{
/// <summary>
/// 基于.NET 2.0的ACCESS数据简单操作类
/// </summary>
public class AccessUtilsV2
{
string ConnectString = string.Empty;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="path">access路径</param>
public AccessUtilsV2(string path)
{
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="path">access路径</param>
/// <param name="password">access密码</param>
public AccessUtilsV2(string path, string password)
{
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Jet OLEDB:Database Password= " + password;
}
/// <summary>
/// ExecuteNonQuery
/// </summary>
/// <param name="sql">查询,修改,删除sql语句</param>
/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>
/// <returns>操作影响行数</returns>
public int ExecuteNonQuery(string sql, OleDbParameter[] parameters)
{
int _affectedRows = -1;
using (OleDbConnection sqlcon = new OleDbConnection(ConnectString))
{
sqlcon.Open();
using (OleDbCommand sqlcmd = new OleDbCommand(sql, sqlcon))
{
if (parameters != null)
sqlcmd.Parameters.AddRange(parameters);
_affectedRows = sqlcmd.ExecuteNonQuery();
}
}
return _affectedRows;
}
/// <summary>
/// ExecuteReader
/// </summary>
/// <param name="sql">读取sql语句</param>
/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>
/// <returns>IDataReader</returns>
public IDataReader ExecuteReader(string sql, OleDbParameter[] parameters)
{
OleDbConnection _sqlcon = new OleDbConnection(ConnectString);
using (OleDbCommand _sqlcmd = new OleDbCommand(sql, _sqlcon))
{
if (parameters != null)
_sqlcmd.Parameters.AddRange(parameters);
_sqlcon.Open();
return _sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
/// <summary>
/// ExecuteDataTable
/// </summary>
/// <param name="sql">读取sql语句</param>
/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>
/// <returns>DataTable</returns>
public DataTable ExecuteDataTable(string sql, OleDbParameter[] parameters)
{
using (OleDbConnection _sqlcon = new OleDbConnection(ConnectString))
{
using (OleDbCommand _sqlcmd = new OleDbCommand(sql, _sqlcon))
{
if (parameters != null)
_sqlcmd.Parameters.AddRange(parameters);
using (OleDbDataAdapter _sqldap = new OleDbDataAdapter(_sqlcmd))
{
DataTable _dt = new DataTable();
_sqldap.Fill(_dt);
return _dt;
}
}
}
}
/// <summary>
/// ExecuteScalar
/// </summary>
/// <param name="sql">查询第一行第一列数据值</param>
/// <param name="parameters">OleDbParameter参数;eg: new OleDbParameter("@categoryName","Test2")</param>
/// <returns>Object</returns>
public Object ExecuteScalar(string sql, OleDbParameter[] parameters)
{
using (OleDbConnection _sqlcon = new OleDbConnection(ConnectString))
{
using (OleDbCommand _sqlcmd = new OleDbCommand(sql, _sqlcon))
{
if (parameters != null)
_sqlcmd.Parameters.AddRange(parameters);
_sqlcon.Open();
return _sqlcmd.ExecuteScalar();
}
}
}
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }测试代码:
using CSharpUtilHelpV2;
using System;
using System.Data;
using System.Data.OleDb;
using System.IO;
namespace CSharpUtilHelpV2Test
{
public class AccessUtilsV2Test
{
static AccessUtilsV2 AccessHelper = new AccessUtilsV2(string.Format(@"{0}\DB\Northwind.MDB", AppDomain.CurrentDomain.BaseDirectory.ToString()));
public static void ShowAccessPath()
{
string _fullPath = string.Format(@"{0}\DB\Northwind.MDB", AppDomain.CurrentDomain.BaseDirectory.ToString());
Console.WriteLine(_fullPath);
Console.WriteLine("File.Exist:" + File.Exists(_fullPath));
}
public static void ExecuteNonQueryTest()
{
//-------------------------方式一---------------------------------------
//string _sql = "INSERT INTO Categories (CategoryID, CategoryName, Description) VALUES (22, 'Test', '测试')";
//Console.WriteLine("ExecuteNonQueryTest:" + AccessHelper.ExecuteNonQuery(_sql, null));
//-------------------------方式二---------------------------------------
string _sql = "INSERT INTO Categories (CategoryID, CategoryName, Description) VALUES (@id, @categoryName, @description)";
OleDbParameter[] _paramter = new OleDbParameter[] {
new OleDbParameter("@id",23),
new OleDbParameter("@categoryName","Test2"),
new OleDbParameter("@description","测试2")
};
Console.WriteLine("ExecuteNonQueryTest:" + AccessHelper.ExecuteNonQuery(_sql, _paramter));
}
public static void ExecuteReaderTest()
{
string _sql = "select * from Categories where CategoryID<=5";
using (IDataReader reader = AccessHelper.ExecuteReader(_sql, null))
{
while (reader.Read())
{
Console.WriteLine("CategoryID:" + reader["CategoryID"] + " CategoryName:" + reader["CategoryName"]);
}
}
}
public static void ExecuteDataTableTest()
{
string _sql = "select * from Categories where CategoryID<=5";
Console.WriteLine("ExecuteDataTableTest:" + AccessHelper.ExecuteDataTable(_sql, null).Rows.Count);
}
public static void ExecuteScalarTest()
{
string _sql = "select * from Categories where CategoryID<=5";
Console.WriteLine("ExecuteScalarTest:" + AccessHelper.ExecuteScalar(_sql, null) ?? "Null");
}
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }测试结果:

这里是对Access操作的简单封装,希望有所帮助!
本人才疏学浅,难免错误,敬请指出,谢谢!
[C#]AccessUtils的更多相关文章
- .net(C#)在Access数据库中执行sql脚本
自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...
- HBase实践案例:知乎 AI 用户模型服务性能优化实践
用户模型简介 知乎 AI 用户模型服务于知乎两亿多用户,主要为首页.推荐.广告.知识服务.想法.关注页等业务场景提供数据和服务, 例如首页个性化 Feed 的召回和排序.相关回答等用到的用户长期兴趣特 ...
随机推荐
- Solaris 安装JDK
http://blog.csdn.net/cymm_liu/article/details/46966237 整理自前辈的博客:http://segmentfault.com/a/119000000 ...
- Ruby on Rails Tutorial 第二章 之 用户资源&MVC&REST
说明:用户资源包括用户数据模型和这个模型相关的Web页面. 1.用户数据模型如下: 2.使用Rails内置的脚手架生成用户资源中,执行如下所示命令: $ rails generate scaffold ...
- mysql单引号和双引号的用法
表名,列名最好用`(esc下面那个,不用`会出错) 这就要从双引号和单引号的作用讲起:双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出.例如:$abc= ...
- linux-搜索
grep显示文件中的匹配行 grep 参数 字符串 文件名 -c 输出匹配的行数 -v输出不匹配行 不加参数 :输出匹配的行 经常和管道符一起使用 eg:ps -ef|grep tom ...
- linux mail 配置
1:sudo apt-get install sendmail sendmail-cf2:ps aux | grep sendmail3.配置/etc/mail/sendmail.mc FEAT ...
- linux 主机免验证登录
1.ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub 2.scp -p port ~/.ssh/id ...
- javaweb学习总结十一(JAXP对XML文档进行DOM解析)
一:将内存中写好的xml文件读取到硬盘上 二:DOM方式对xml文件进行增删改查 1:添加节点(默认是在最后的子节点后面添加) @Test // 向元素中添加节点<version>1.0& ...
- [改善Java代码]在接口中不要存在实现代码
第3章 类.对象及方法 书读得多而不思考,你会觉得自己知道的很多. 书读得多而思考,你会觉得自己不懂的越来越多. —伏尔泰 在面向对象编程(Object-Oriented Programming,O ...
- hdu 1358 KMP的next数据运用
由于next[i]保存的是前i-1个字符中最大的重复子序列,那么i-next[i]就是循环节. #include<cstdio> #include<cstring> #incl ...
- Linux 命令 - scp: 远程文件拷贝
scp 与普通的文件复制命令 cp 类似,而它们之间最大的差别在于 scp 命令的源或目标文件是远程文件. 命令格式 scp [options] [[user@]host1:]file1 ... [[ ...