C#读写Access数据库公用类

/**
 * 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>
原文地址:https://www.cnblogs.com/ding0910/p/1201504.html