给个asp.net C#链接access数据库的类文件 要有那种可以执行数据库的语句的。

解决方案 »

  1.   

    ado.net 数据库操作 dbhelper
    连接字符串
    <appSettings>  
    <add key="ConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>  
    <add key="dbPath" value="~/App_Data/a.mdb"/>  
    </appSettings>
    <add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/>  
    public static OleDbDataReader ExecuteReader(string strSQL)   
      {   
      OleDbConnection connection = new OleDbConnection(connectionString);   
      OleDbCommand cmd = new OleDbCommand(strSQL, connection);   
      try   
      {   
      connection.Open();   
      OleDbDataReader myReader = cmd.ExecuteReader();   
      return myReader;   
      }   
      catch (System.Data.OleDb.OleDbException e)   
      {   
      throw new Exception(e.Message);   
      }   
        
      }   
      

  2.   

    类文件:OleDbData.cs: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.Data.OleDb;/// <summary>
    /// OleDbData类封装了对Access数据库的常用基本操作
    /// </summary>
    public class OleDbData
    {
        private OleDbConnection cn;
        private OleDbCommand cmd;
        private OleDbDataAdapter da;
        private OleDbCommandBuilder cb;
        public DataSet ds;
        public OleDbDataReader dr;
        public OleDbData(string OleDbStr)
        {
            string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + AppDomain.CurrentDomain.BaseDirectory(@"App_Data/学生.mdb");
    cn = new OleDbConnection(ConStr);
            cn.Open();
            cmd = new OleDbCommand(OleDbStr, cn);
            da = new OleDbDataAdapter(OleDbStr,cn);
            cb = new OleDbCommandBuilder(da);
            ds = new DataSet();
        }
        public void Fill()
        {
            da.Fill(ds);
        }
        public void Fill(string tbName)
        {
            da.Fill(ds, tbName);
        }
        public void Update()
        {
            da.Update(ds);
        }
        public void Update(string tableName)
        {
            da.Update(ds,tableName);
        }
        public void Close()
        {
            cn.Close();
        }
        public void SetCommandText(string OleDbStr)
        {
            cmd.CommandText = OleDbStr;
            da.SelectCommand = cmd;
            //da.InsertCommand = cmd;
            //da.UpdateCommand = cmd;
            //da.DeleteCommand = cmd;
        }
        public int ExecuteScalar()
        {
            int first = (int)cmd.ExecuteScalar();
            return first;
        }
        public int ExecuteScalar(string OleDbStr)
        {
            cmd.CommandText = OleDbStr;
            int first = (int)cmd.ExecuteScalar();
            return first;
        }
        public int ExecuteNonQuery()
        {
            return cmd.ExecuteNonQuery();
        }
        public void ExecuteReader()
        {
            dr = cmd.ExecuteReader();
        }
        public void SetParameters(params string[] values)
        {
            for (int i = 0; i < values.Length/2; i++)
                cmd.Parameters.AddWithValue(values[i * 2], values[i * 2 + 1]);
            da.SelectCommand = cmd;
        }
    }这是我过去写的一个类,有些不完善的地方,主要是部分成员变量公开了,应该全部私有化,再设置属性公开。不过这样写不影响使用。
    使用举例,用:
    OleDbData md=new OleDbData("select * from 表名");
    md.Fill();
    GridView1.DataSource=md.ds.Table[0];
    GridView1.DataBind();
    md.Close();
    比较方便。