求c#版的access数据库访问类,求c#版的access数据库访问类,功能一般就可以了,像这个差不多 http://blog.csdn.net/teng_s2000/archive/2005/10/27/517449.aspx这个是sql版的,有没有 access版的,
解决方案 »
- winform问题 如下
- 用api(GetWindowRect)获取窗体矩形的问题
- 求关于 接口、委托、多态、多线程、泛型 的学习
- 一个.xls(excel 2003)中有几个sheet,我要把sheet1中一些格子的内容复制到sheet2中去,什么办法最简单?
- 程序做好了如何给软件做个注册????????
- 请教,为什么C#中常常实例化子类,定义却是父类类型
- c#连接orcle数据库
- SQL查询不执行,在时间探查器中也没有sql 执行的事件
- 中文版和英文版的win2k哪个用着爽啊?有理的都给分
- LINQ to Entities 的问题
- 100分求助 C#中如何让控件失去焦点
- C#群,欢迎大家加入
using System.Data.OleDb;
using System.Data;
using System.Web;
namespace SaveMessage
{
/// <summary>
/// DataAccess 的摘要说明。
/// </summary>
public class DataAccess
{
private string dbPath;//Access数据库的变量
/// <summary>
/// 创建类的一个属性,Access数据库路径的属性
/// </summary>
public string DBpath
{
get{return dbPath;}
set{dbPath=value;}
}
/// <summary>
/// 构造函数中设置DBpath的值
/// </summary>
/// <param name="AccessPath">程序集中的相对路径</param>
public DataAccess(string AccessPath)
{
this.DBpath=HttpContext.Current.Server.MapPath("")+AccessPath;
}
private OleDbConnection con;
/// <summary>
/// 确认链接打开
/// </summary>
private void Open()
{
if(con==null)
con=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DBpath);
if(con.State==ConnectionState.Closed)
con.Open();
}
/// <summary>
/// 创建一个命令对象并返回该对象
/// </summary>
/// <param name="sqlStr">数据库语句</param>
/// <returns>OleDbCommand</returns>
private OleDbCommand CreateCommand(string sqlStr)
{
Open();
OleDbCommand cmd=new OleDbCommand();
cmd.CommandType=CommandType.Text;
cmd.CommandText=sqlStr;
cmd.Connection=con;
return cmd;
}
/// <summary>
/// 创建一个命令对象并返回该对象
/// </summary>
/// <param name="sqlStr">数据库语句</param>
/// <param name="parame">命令参数数组</param>
/// <returns>OleDbCommand</returns>
private OleDbCommand CreateCommand(string sqlStr,OleDbParameter[] parame)
{
Open();
OleDbCommand cmd=new OleDbCommand();
cmd.CommandType=CommandType.Text;
cmd.CommandText=sqlStr;
cmd.Connection=con;
if(parame!=null)
{
foreach(OleDbParameter pare in parame)
{
cmd.Parameters.Add(pare);
}
}
return cmd;
}
/// <summary>
/// 创建命令参数
/// </summary>
/// <param name="ParameName">参数名称</param>
/// <param name="dbType">参数数据类型</param>
/// <param name="size">参数大小</param>
/// <param name="direction">参数类型</param>
/// <param name="Value">参数的值</param>
/// <returns>参数</returns>
public OleDbParameter MakeParameter(string ParameName,OleDbType dbType,Int32 size,ParameterDirection direction,object Value)
{
OleDbParameter param;
if(size > 0)
param=new OleDbParameter(ParameName,dbType,size);
else
param=new OleDbParameter(ParameName,dbType);
param.Direction=direction;
if(!(param.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 MakeInParam(string ParamName, OleDbType DbType, int Size, object Value)
{
return MakeParameter(ParamName, DbType, Size, ParameterDirection.Input, Value);
} /// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public OleDbParameter MakeOutParam(string ParamName, OleDbType DbType, int Size)
{
return MakeParameter(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 MakeReturnParam(string ParamName, OleDbType DbType, int Size)
{
return MakeParameter(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
/// <summary>
/// 生成一个数据读取器OleDbDataReader并返回该OleDbDataReader
/// </summary>
/// <param name="sqlStr">数据库查询语句</param>
/// <returns>返回一个DataReader对象</returns>
public OleDbDataReader GetReader(string sqlStr)
{
OleDbCommand cmd=CreateCommand(sqlStr);
OleDbDataReader reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);
//CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来
//当关闭DataReader对象时候也自动关闭链接
return reader;
}
/// <summary>
/// 生成一个数据读取器OleDbDataReader并返回该OleDbDataReader
/// </summary>
/// <param name="sqlStr">数据库查询语句</param>
/// <param name="parame">命令参数数组</param>
/// <returns>返回一个DataReader对象</returns>
public OleDbDataReader GetReader(string sqlStr,OleDbParameter[] parame)
{
OleDbCommand cmd=CreateCommand(sqlStr,parame);
OleDbDataReader reader=cmd.ExecuteReader(CommandBehavior.CloseConnection);
//CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来
//当关闭DataReader对象时候数据库连接也自动关闭链接
return reader;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="sqlStr">SQL语句</param>
/// <returns>返回数值当执行成功时候返回true,失败则返回false</returns>
public bool ExecuteNonQury(string sqlStr)
{
OleDbCommand cmd = CreateCommand(sqlStr);
int result = cmd.ExecuteNonQuery();
if(result==-1 | result==0)
{
cmd.Dispose();
Close();
return false;
}
else
{
cmd.Dispose();
Close();
return true;
}
}
/// <summary>
/// 执行带有参数的SQL语句
/// </summary>
/// <param name="sqlStr">SQL语句</param>
/// <param name="parame">命令参数数组</param>
/// <returns>返回数值当执行成功时候返回true,失败则返回false</returns>
public bool ExecuteNonQury(string sqlStr,OleDbParameter[] parame)
{
OleDbCommand cmd = CreateCommand(sqlStr,parame);
int result = cmd.ExecuteNonQuery();
if(result==-1 | result==0)
{
cmd.Dispose();
Close();
return false;
}
else
{
cmd.Dispose();
Close();
return true;
}
}
/// <summary>
/// 执行数据库查询并返回一个数据集
/// </summary>
/// <param name="sqlStr">SQL查询语句</param>
/// <param name="tableName">填充数据集表格的名称</param>
/// <returns>返回整个数据集</returns>
public DataSet GetDataSet(string sqlStr,string tableName)
{
DataSet dataset = new DataSet();
OleDbCommand cmd = CreateCommand(sqlStr);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd);
dataAdapter.Fill(dataset,tableName);
cmd.Dispose();
Close();
dataAdapter.Dispose();
return dataset;
}
/// <summary>
/// 执行带有参数的数据库查询
/// </summary>
/// <param name="sqlStr">SQL查询语句</param>
/// <param name="tableName">填充数据集表格的名称</param>
/// <param name="parame">参数数组</param>
/// <returns>返回整个数据集</returns>
public DataSet GetDataSet(string sqlStr,string tableName,OleDbParameter[] parame)
{
DataSet dataset = new DataSet();
OleDbCommand cmd = CreateCommand(sqlStr,parame);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd);
dataAdapter.Fill(dataset,tableName);
cmd.Dispose();
Close();
dataAdapter.Dispose();
return dataset;
}
/// <summary>
/// 关闭数据库
/// </summary>
public void Close()
{
if(con!=null)
con.Close();
}
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
if(con!=null)
{
con.Dispose();
con=null;
}
}
}
} 改自别人的,还没有测试..LZ自己测试一下吧