
/**//**
* Access数据库通用处理类
* Author: ding.email@163.com
* CreateTime: 2008-05-16
*/
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.Web;
using System.IO;

namespace DBUtility


{
public class EasyAccess

{

/**//// <summary>
/// 连接数据库字符串
/// </summary>
private string connectionString;


/**//// <summary>
/// 存储数据库连接(保护类,只有由它派生的类才能访问)
/// </summary>
protected OleDbConnection Connection;


/**//// <summary>
/// 构造函数:数据库的默认连接
/// </summary>
public EasyAccess()

{
string connStr;
connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
// connStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString(); //从web.config配置中读取
connectionString = connStr;
//connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + connStr;
Connection = new OleDbConnection(connectionString);
}


/**//// <summary>
/// 构造函数:带有参数的数据库连接
/// </summary>
/// <param name="newConnectionString"></param>
public EasyAccess(string newConnectionString)

{
connectionString = newConnectionString;
Connection = new OleDbConnection(connectionString);
}


/**//// <summary>
/// 获得连接字符串
/// </summary>
public string ConnectionString

{
get

{
return connectionString;
}
}


/**//// <summary>
/// 执行批处理(事务)
/// </summary>
/// <param name="arrlist"></param>
/// <returns></returns>
public bool ExecuteBatch(ArrayList arrlist)

{
bool bFlag = true;
string strSQL = string.Empty;

Connection.Open();
OleDbCommand command = null;
using (OleDbTransaction myTrans = Connection.BeginTransaction())

{
try

{
foreach (Object objSql in arrlist)

{
strSQL = objSql.ToString().Trim();
if (!string.IsNullOrEmpty(strSQL))
command = new OleDbCommand(strSQL, Connection, myTrans);
}
myTrans.Commit();
}
catch (Exception e)

{
myTrans.Rollback();
try

{
string lstrFileFolder = HttpContext.Current.Server.MapPath(@"~\log\");
string filename = "SqlErr_" + System.DateTime.Today.ToString("yyyyMMdd");
string path = lstrFileFolder + filename;
//判断目录是否存在,不存在就建立
if (!Directory.Exists(lstrFileFolder))

{
Directory.CreateDirectory(lstrFileFolder);
}
//写文件,文件存在则追加文本,不存在则创建新文件
FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(" =============== [" + System.DateTime.Now.ToString() + "] =============== ");
m_streamWriter.WriteLine(e.ToString());
m_streamWriter.WriteLine("---------------------------------------");
m_streamWriter.WriteLine(strSQL);
m_streamWriter.WriteLine("---------------------------------------");
m_streamWriter.WriteLine(" ");
m_streamWriter.Flush();
m_streamWriter.Close();
}

catch
{ }
bFlag = false;
}
finally

{
if (Connection.State == ConnectionState.Open)

{
Connection.Close();
}
if (Connection != null)

{
Connection.Dispose();
}
}
}

return bFlag;
}


/**//// <summary>
/// 执行SQL语句没有返回结果,如:执行删除、更新、插入等操作
/// </summary>
/// <param name="strSQL"></param>
/// <returns>操作成功标志</returns>
public bool ExecuteNonQuery(string strSQL)

{
bool resultState = false;

Connection.Open();
OleDbTransaction myTrans = Connection.BeginTransaction();
OleDbCommand command = new OleDbCommand(strSQL, Connection, myTrans);

try

{
command.ExecuteNonQuery();
myTrans.Commit();
resultState = true;
}
catch

{
myTrans.Rollback();
resultState = false;
}
finally

{
Connection.Close();
}
return resultState;
}


/**//// <summary>
/// 执行SQL语句返回结果到DataReader中
/// </summary>
/// <param name="strSQL"></param>
/// <returns>dataReader</returns>
public OleDbDataReader ExecuteDataReader(string strSQL)

{
Connection.Open();
OleDbCommand command = new OleDbCommand(strSQL, Connection);
OleDbDataReader dataReader = command.ExecuteReader();
Connection.Close();

return dataReader;
}


/**//// <summary>
/// 执行SQL语句返回结果到DataSet中
/// </summary>
/// <param name="strSQL"></param>
/// <returns>DataSet</returns>
public DataSet ExecuteDataSet(string strSQL)

{
Connection.Open();
DataSet dataSet = new DataSet();
OleDbDataAdapter OleDbDA = new OleDbDataAdapter(strSQL, Connection);
OleDbDA.Fill(dataSet, "myDataSet");

Connection.Close();
return dataSet;
}


/**//// <summary>
/// 执行SQL语句返回结果到DataTable中
/// </summary>
/// <param name="strSQL"></param>
/// <returns></returns>
public DataTable ExecuteDataTable(string strSQL)

{
return this.ExecuteDataSet(strSQL).Tables[0];
}
}
}

<configuration>
<connectionStrings>
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\MyProject\Web2.0\myWeb\WebSite\App_Data\myData.mdb;Jet OLEDB:Database Password=" providerName="System.Data.OleDb"/>
</connectionStrings>
<appSettings>
<add key="str_connection" value="database=MysqlserverDB;server=127.0.0.1;uid=sa;pwd=;Max pool size =299;enlist=true;persist security info=true"/>
</appSettings>
posted @
2008-05-17 19:44
blueKnight
Views(
4545)
Comments()
收藏
举报