我想在类库写一段代码用来访问ACCESS数据库,方面其它页面的调用,请大家指点.

解决方案 »

  1.   

    SQL简单版:
    public class DataBase 
    {
    public static int IconIndex =0; 
    // 连接数据源
    public System.Data.SqlClient.SqlConnection con=null;
        /// <summary>
    /// 创建一个SqlCommand对象以此来执行无参数的存储过程
    /// </summary>
    /// <returns>返回SqlCommand对象</returns>
    public SqlDataAdapter CreateCommand(string procName) 
    {
    // 确认打开连接
    Open(); System.Data.SqlClient.SqlDataAdapter Adp=new SqlDataAdapter(procName,con); return Adp;
    }
    /// <summary>
    ///执行无参数的存储过程
    /// </summary>
    public System.Data.SqlClient.SqlCommand Command(string ProcName)              
    {
    Open(); System.Data.SqlClient.SqlCommand com=new SqlCommand(ProcName,con); return com;
    } /// <summary>
    ///执行需要单个参数的存储过程
    /// </summary>
    public System.Data.SqlClient.SqlCommand Command(System.Data.SqlClient.SqlParameter Para,string ProcName)  
    {
    Open();
    System.Data.SqlClient.SqlCommand com=new SqlCommand();
    com.Parameters.Add(Para);
    com.CommandType=CommandType.StoredProcedure;
    com.Connection=con;
    com.CommandText=ProcName; return com; }
    /// <summary>
    /// 打开数据库连接.
    /// </summary>
    public void Open() 
    {
    // 打开数据库连接
    if (con == null) 
    {
    con = new SqlConnection(ConfigurationSettings.AppSettings["Connection_str"]);
    }
    if(con.State == System.Data.ConnectionState.Closed)
    {
    con.Open();
    }
    } /// <summary>
    /// 关闭数据库连接
    /// </summary>
    public void Close() 
    {
    if (con != null)
    {
    con.Close();
    }
    } /// <summary>
    /// 释放资源,同时Close()
    /// </summary>
    public void Dispose() 
    {
    // 确认连接是否已经关闭
    if (con != null) 
    {
    con.Dispose();     //Calling Dispose also calls SqlConnection.Close
    con = null;
    }
    }
    }
      

  2.   

    entlib的daab可以实现,当然自己写也是一个好的尝试
      

  3.   

    string conStr = ConfigurationSettings.AppSettings["ConnectionStr"]
      

  4.   

    我要访问ACCESS的类库.不是SQL的,SQL的我会,呵呵.
      

  5.   

    我要访问ACCESS的类库.不是SQL的,SQL的我会,呵呵.------------
    一样,将相关的类,换成 OleDb如,public void ReadMyData(string connectionString)
    {
        string queryString = "SELECT OrderID, CustomerID FROM Orders";
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            OleDbCommand command = new OleDbCommand(queryString, connection);
            connection.Open();
            OleDbDataReader reader = command.ExecuteReader();        while (reader.Read())
            {
                Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
            }
            // always call Close when done reading.
            reader.Close();
        }
      

  6.   

    public OleDbDataReader GetDataReaderMDB(string selectCmd) // Select From Table
            {
                
                string m_dbConnection  ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+HttpContext.Current.Request.PhysicalApplicationPath+System.Configuration.ConfigurationSettings.AppSettings["PATH"];
                if (m_dbConnection==null) throw new Exception("Error-> DSN not set in Config.web");            OleDbConnection m_SqlConnection = new OleDbConnection(m_dbConnection);
                OleDbCommand    m_SqlCommand    = new OleDbCommand(selectCmd, m_SqlConnection);
                try 
                {
                    m_SqlCommand.Connection.Open();
                } // end try
                catch (Exception e)
                {
                    throw new Exception("Error in CInfo:GetDataReader()-> " + e.ToString());
                }
                return m_SqlCommand.ExecuteReader(CommandBehavior.CloseConnection); 
            } // end Select 
    web.config<add key="PATH" value="bbs/mdb/dxxobbs.mdb" />
      

  7.   

    直接拿来就可以用了,上回做东西的时候改的,还加了一个防注入的.using System;
    using System.Data;
    using System.Data.SqlClient; 
    using System.Data.OleDb;
    using System.Web;
    namespace cjyy
    {
    /// <summary>
    /// DataAccess 的摘要说明。
    /// <description>数据处理基类,调用方式:DataAccess.DataSet((string)sqlstr);或者DataAccess.DataSet((string)sqlstr,ref DataSet ds); </description>
    /// </summary>
    public class DataAccess
    {
    #region  属性
    protected static OleDbConnection conn=new OleDbConnection();
    protected static OleDbCommand    comm=new OleDbCommand(); protected static string connSting=connString.createConnString();//string.Format("Provider={0};Data Source={1}",System.Configuration.ConfigurationSettings.AppSettings["Provider"],System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["DataSource"]));
     
    #endregion
    public DataAccess()
    {
    //init();
    }
    #region 内部函数  静态方法中不会执行DataAccess()构造函数 /// <summary>
    /// 打开数据库连接
    /// </summary>
    private static void openConnection()
    {
    if (conn.State == ConnectionState.Closed)
    {
    //SysConfig.ConnectionString 为系统配置类中连接字符串,如:"server=localhost;database=databasename;uid=sa;pwd=;"
    conn.ConnectionString =DataAccess.connSting;
    comm.Connection =conn;
    try
    {
    conn.Open();
    }
    catch(Exception e)
    {
    throw new Exception(e.Message);
    }
    }
    }
    /// <summary>
    /// 关闭当前数据库连接
    /// </summary>
    private static void closeConnection()
    {
    if(conn.State == ConnectionState.Open)
        conn.Close();
    conn.Dispose();
    comm.Dispose();
    }
    #endregion
    /// <summary>
    /// 执行Sql查询语句
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    public static void ExecuteSql(string sqlstr)
    {
    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    comm.ExecuteNonQuery(); 
    }
    catch(Exception e)
    {
    throw new Exception(e.Message);
    }
    finally
    {
    closeConnection();
    }
    } /// <summary>
    /// 执行Sql查询语句并返回第一行的第一条记录,返回值为object 使用时需要拆箱操作 -> Unbox
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <returns>object 返回值 </returns>
    public static object ExecuteScalar(string sqlstr)
    {
    object obj=new object();
    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    obj=comm.ExecuteScalar(); 
    }
    catch(Exception e)
    {
    throw new Exception(e.Message);
    }
    finally
    {
    closeConnection();
    }
    return obj;
    }
    /// <summary>
    /// 返回指定Sql语句的SqlDataReader,请注意,在使用后请关闭本对象,同时将自动调用closeConnection()来关闭数据库连接
    /// 方法关闭数据库连接
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <returns>SqlDataReader对象</returns>
    public static OleDbDataReader dataReader(string sqlstr)
    {
    OleDbDataReader dr=null;
    try
    {
    openConnection();
    comm.CommandText =sqlstr;
    comm.CommandType =CommandType.Text ;
    dr=comm.ExecuteReader(CommandBehavior.CloseConnection); 
    }
    catch
    {
    try
    {
    dr.Close();
    closeConnection();
    }
    catch
    {
    }
    }
    return dr;
    } /// <summary>
    /// 返回指定Sql语句的SqlDataReader,请注意,在使用后请关闭本对象,同时将自动调用closeConnection()来关闭数据库连接
    /// 方法关闭数据库连接
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <param name="dr">传入的ref DataReader 对象</param>
    public static void dataReader(string sqlstr,ref OleDbDataReader dr)
    {
    try
    {
    openConnection();
    comm.CommandText =sqlstr;
    comm.CommandType =CommandType.Text ;
    dr=comm.ExecuteReader(CommandBehavior.CloseConnection); 
    }
    catch
    {
    try
    {
    if(dr!=null && !dr.IsClosed)
    dr.Close();
    }
    catch
    {
    }
    finally
    {
    closeConnection();
    }
    }
    finally
    {
                    closeConnection();
    }
    } /// <summary>
    /// 返回指定Sql语句的DataSet
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <returns>DataSet</returns>
    public static DataSet dataSet(string sqlstr)
    {
    DataSet ds= new DataSet();
    OleDbDataAdapter da=new OleDbDataAdapter();
    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    da.SelectCommand =comm;
    da.Fill(ds);
    }
    catch(Exception e)
    {
    throw new Exception(e.Message); 
    }
    finally
    {
    closeConnection();
    }
    return ds;
    } /// <summary>
    /// 返回指定Sql语句的DataSet
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <param name="ds">传入的引用DataSet对象</param>
    public static void dataSet(string sqlstr,ref DataSet ds)
    {
    OleDbDataAdapter da=new OleDbDataAdapter();
    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    da.SelectCommand =comm;
    da.Fill(ds);
    }
    catch(Exception e)
    {
    throw new Exception(e.Message); 
    }
    finally
    {
    closeConnection();
    }
    }
    /// <summary>
    /// 返回指定Sql语句的DataSet
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <param name="startInt">查询的开始的</param>
    /// <param name="maxInt">查询终止的</param>
    /// <param name="tableName">表名</param>
    public static DataSet dataSet(string sqlstr,int startInt,int maxInt,string tableName)
    {
    DataSet ds= new DataSet();
    OleDbDataAdapter da=new OleDbDataAdapter();

    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    da.SelectCommand =comm;
    da.Fill(ds,startInt,maxInt,tableName);
    }
    catch(Exception e)
    {
    throw new Exception(e.Message); 
    }
    finally
    {
    closeConnection();
    }
    return ds;
    }
    /// <summary>
    /// 返回指定Sql语句的DataTable
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <returns>DataTable</returns>
    public static DataTable dataTable(string sqlstr)
    {
    OleDbDataAdapter da=new OleDbDataAdapter();
    DataTable datatable=new DataTable();
    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    da.SelectCommand =comm;
    da.Fill(datatable);
    }
    catch(Exception e)
    {
    throw new Exception(e.Message); 
    }
    finally
    {
    closeConnection();
    }
    return datatable;
    } /// <summary>
    /// 执行指定Sql语句,同时给传入DataTable进行赋值 
    /// </summary>
    /// <param name="sqlstr">传入的Sql语句</param>
    /// <param name="dt">ref DataTable dt </param>
    public static void dataTable(string sqlstr,ref DataTable dt)
    {
    OleDbDataAdapter da=new OleDbDataAdapter();
    try
    {
    openConnection();
    comm.CommandType =CommandType.Text ;
    comm.CommandText =sqlstr;
    da.SelectCommand =comm;
    da.Fill(dt);
    }
    catch(Exception e)
    {
    throw new Exception(e.Message); 
    }
    finally
    {
    closeConnection();
    }
    } }}
      

  8.   

    呵呵.类库中没有WEB.CONFIG是不是要自己加一个啊!
      

  9.   

    把SqlCommand之类的换成OleDbCommand
      

  10.   

    把SqlCommand之类的换成OleDbCommand,能行的话我就不发这个高分的帖子了.呵呵.
      

  11.   

    是从我程序里 扣出来
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text.RegularExpressions;
    using System.Data.OleDb;/// <summary>
    /// WebFunction 数据操作类
    /// </summary>
    public class WebFunction
    {
        protected static OleDbConnection conn = new OleDbConnection();
        protected static OleDbCommand comm = new OleDbCommand();    public WebFunction()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }    /// <summary> 
        /// 打开数据库连接 
        /// </summary> 
        private static void openConnection()
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
                comm.Connection = conn;
                try
                {
                    conn.Open();
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
        }    /// <summary> 
        /// 关闭当前数据库连接 
        /// </summary> 
        private static void closeConnection()
        {
            if (conn.State == ConnectionState.Open)
                conn.Close();
            conn.Dispose();
            comm.Dispose();
        }
        /// <summary> 
        /// 执行Sql查询语句 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        public static void ExecuteSql(string sqlstr)
        {
            try
            {
                openConnection();
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                comm.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                closeConnection();
            }
        }    /// <summary> 
        /// 执行Sql更新语句 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param>
        /// <returns>布尔值</returns>
        public static bool ExecuteUpdate(string sqlstr)
        {
            int isUpdateOk = 0;
            try
            {
                openConnection();
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                isUpdateOk = Convert.ToInt32(comm.ExecuteNonQuery());
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                closeConnection();
            }
            if (isUpdateOk > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }    /// <summary> 
        /// 执行Sql查询语句并返回第一行的第一条记录,返回值为object 使用时需要拆箱操作 -> Unbox 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <returns>object 返回值 </returns> 
        public static object ExecuteScalar(string sqlstr)
        {
            object obj = new object();
            try
            {
                openConnection();
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                obj = comm.ExecuteScalar();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                closeConnection();
            }
            return obj;
        }    /// <summary> 
        /// 返回指定Sql语句的SqlDataReader,请注意,在使用后请关闭本对象,同时将自动调用closeConnection()来关闭数据库连接 
        /// 方法关闭数据库连接 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <returns>SqlDataReader对象</returns> 
        public static OleDbDataReader dataReader(string sqlstr)
        {
            OleDbDataReader dr = null;
            try
            {
                openConnection();
                comm.CommandText = sqlstr;
                comm.CommandType = CommandType.Text;
                dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
            }
            catch
            {
                try
                {
                    dr.Close();
                    closeConnection();
                }
                catch
                {
                }
            }
            return dr;
        }    ///<summary>
        ///关闭datareader
        ///传入SqlDataReader的ref
        ///</summary>
        public static void closeDataReader(ref OleDbDataReader sdr)
        {
            try
            {
                sdr.Close();
                sdr.Dispose();
            }
            catch (Exception)
            { }
        }    /// <summary> 
        /// 返回指定Sql语句的DataSet 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <returns>DataSet</returns> 
        public static DataSet dataSet(string sqlstr)
        {
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter();
            try
            {
                openConnection();
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                da.SelectCommand = comm;
                da.Fill(ds);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                closeConnection();
            }
            return ds;
        }    /// <summary> 
        /// 返回指定Sql语句的DataSet 
        /// </summary> 
        /// <param name="sqlstr">传入的Sql语句</param> 
        /// <param name="ds">传入的引用DataSet对象</param> 
        public static void dataSet(string sqlstr, ref DataSet ds)
        {
            OleDbDataAdapter da = new OleDbDataAdapter();
            try
            {
                openConnection();
                comm.CommandType = CommandType.Text;
                comm.CommandText = sqlstr;
                da.SelectCommand = comm;
                da.Fill(ds);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }        finally
            {
                closeConnection();
            }
        }
    }
      

  12.   

    这个写在页面里是没有问题的.可是写在类库里面就找不到"System.Web.Web.Configuration"中的configuration了.并且类库中没有WEB.CONFIG.那又怎么办.还要手动一个吗?不太现实吧!呵呵.