//---------------Access数据库操作通用数据访问层---------
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.OleDb;
namespace Access
{
public class DataAccess
{
/// <summary>
/// OleDb数据库连接字符串
/// </summary>
private string connectString;
private OleDbCommand comm = new OleDbCommand();
private OleDbConnection conn = new OleDbConnection();
/// <summary>
/// 默认构造函数
/// </summary>
public DataAccess()
{
this.connectString = System.Configuration.ConfigurationManager.ConnectionStrings["RecordConnectionString"].ToString();
conn.ConnectionString = connectString;
comm.CommandType = CommandType.Text;
comm.Connection = conn;
}
/// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="conn">数据库连接</param>
public bool ConnOpen()
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 关闭数据库连接
/// </summary>
/// <param name="conn">数据库连接</param>
public bool ConnClose()
{
try
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 返回要指定数据库查询结果的DataSet
/// </summary>
/// <param name="strSqlQuerySentence"></param>
/// <returns>DataSet</returns>
public DataSet RecorderQueryDataSet(string strSqlSentence)
{
comm.CommandText = strSqlSentence;
ConnOpen();
OleDbDataAdapter thisDataAdapter = new OleDbDataAdapter();
thisDataAdapter.SelectCommand = comm;
DataSet thisDataSet = new DataSet();
try
{
thisDataAdapter.Fill(thisDataSet);
}
catch (Exception ex)
{
return null;
}
ConnClose();
//返回DataSet
return thisDataSet;
}
/// <summary>
/// 返回要指定数据库查询结果的DataSet
/// </summary>
/// <param name="strSqlSentence"> Sql查询语句</param>
/// <param name="strDataTable"> </param>
/// <returns>DataSet</returns>
public DataSet RecorderQueryDataSet(string strSqlSentence, string strDataTable)
{
comm.CommandText = strSqlSentence;
ConnOpen();
//SqlDataAdapter初始化设置
OleDbDataAdapter thisDataAdapter = new OleDbDataAdapter();
thisDataAdapter.SelectCommand = comm;
//DataSet设置
DataSet thisDataSet = new DataSet();
try
{
thisDataAdapter.Fill(thisDataSet, strDataTable);
}
catch (Exception ex)
{
return null;
}
finally
{
ConnClose();
}
//返回DataSet
return thisDataSet;
}
/// <summary>
/// 返回要指定数据库查询结果的DataReader
/// </summary>
/// <param name="strSqlQuerySentence">Sql查询语句</param>
/// <returns>DataReader</returns>
public OleDbDataReader RecorderQueryDataReader(string strSqlSentence)
{
comm.CommandText = strSqlSentence;
OleDbDataReader myReader = null;
ConnOpen();
try
{
//DataReader初始化设置
myReader = comm.ExecuteReader();
}
catch (Exception ex)
{
return null;
}
//返回DataReader
return myReader;
}
//public IList<T> Get
/// <summary>
/// 返回要指定操作数据库的行数
/// </summary>
/// <param name="strSqlQuerySentence">Sql查询语句</param>
/// <returns>int</returns>
public int ReturnAffectRows(string strSqlSentence)
{
comm.CommandText = strSqlSentence;
int rowsAffected = 0;
this.ConnOpen();
try
{
//操作指定数据库
rowsAffected = comm.ExecuteNonQuery();
}
catch (Exception ex)
{
return 0;
}
finally
{
this.ConnClose();
}
//返回操作行数
return rowsAffected;
}
public void Update(string sqlUpdate)
{
conn.Open();
try
{
OleDbCommand cmm = new OleDbCommand(sqlUpdate, conn);
cmm.ExecuteNonQuery();
}
catch (Exception ex)
{
}
finally
{
this.ConnClose();
}
}
}
}
---------------配置文件-------------------------
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="RecordConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Record.mdb" />
</connectionStrings>
-----------------------说明--------------------
我这个例子用的是Record.mdb 这个Access文件.
做了的Access文件需放在项目的 bin/Debug 下面才有效
温馨提示:答案为网友推荐,仅供参考