zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    移动 Web 开发技巧
    判断手机是苹果还是安卓,并且判断安卓的高低版本
    JavaScript判断移动端及pc端访问不同的网站
    input实时监控和获取焦点的问题,oninput,ononfocus
    几个CSS3动画
    canvas加载进度条
    animation动画兼容所有手机
    背景渐变,兼容所有手机端
    文字动画和文字镂空
    前端面试题
  • 原文地址:https://www.cnblogs.com/ding0910/p/1201504.html
Copyright © 2011-2022 走看看