access|asp.net|数据|数据库
ASP.NET[C#]的ACCESS数据库操作类
      //网上很多都是操作SQL SER 的,整理了一下,不是很完善,但不影响使用,呵呵……
       //private string datapatch = ConfigurationSettings.AppSettings["acessconn"];//数据库地址
                                    
        private string datapatch = "db/global.asa";//数据库地址
        /// 
        /// 取得dataset
        /// 
        /// 查询语句
        /// 
        public  DataSet GetDataSet(string Commandtext)
        {        
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                   "Data Source=" + Server.MapPath(datapatch);
            string strCommandText = Commandtext;
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
DataSet myDataset = new DataSet();
            myAdpater.Fill(myDataset);
            
            myConnection.Close();
            return myDataset;
        }
        /// 
        /// 取得表
        /// 
        /// 查询语句
        /// 
        public  DataTable GetDataTable(string Commandtext)
        {        
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                "Data Source=" + Server.MapPath(datapatch);
            string strCommandText =Commandtext;
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
DataSet myDataset = new DataSet();
myAdpater.Fill(myDataset);
DataTable mytable = myDataset.Tables[0];
            myConnection.Close();
            return mytable;
        }
        /// 
        /// 取得某行的某列的值
        /// 
        /// 列的名称
        /// 所属表名
        /// 表的主键
        /// 列所属的主键值
        /// 
        public  string GetDataColum(string strColumnName,string strTableName,string strColumnkey,string strColumnValue)
        {        
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                "Data Source=" + Server.MapPath(datapatch);
            string strCommandText = "select "+strColumnName+","+strColumnkey+" from "+strTableName;
            
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
DataSet myDataset = new DataSet();
            myAdpater.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            
            myAdpater.Fill(myDataset);
            
            myConnection.Close();
            
            DataTable mytable = myDataset.Tables[0];
            DataRow mydr = mytable.Rows.Find(strColumnValue);
            string mydc = mydr[strColumnName].ToString();
            
            
            return mydc;
        }
        
        /// 
        /// 更新某个字段
        /// 
        /// 要更新字段名称
        /// 要更新的值
        /// 所属表名称
        /// 表中KEY
        /// 表中KEY的值
        public  void UpdateColum(string strColumnName,string strValue,string strTableName,string strColumnKey,string strColumnValue)
        {        
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                "Data Source=" + Server.MapPath(datapatch);
            string strCommandText = "select "+strColumnKey+","+strColumnName+" from "+strTableName;
            
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
            DataSet myDataset = new DataSet();
            
            
            myAdpater.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            myAdpater.Fill(myDataset,strTableName);
            
            DataRow drFindRow = myDataset.Tables[strTableName].Rows.Find(strColumnValue);
 
            drFindRow[strColumnName] = strValue;
            
            
            
            myAdpater.Update(myDataset,strTableName);
            
            myConnection.Close();
            
        }
        /// 
        /// 添加行
        /// 
        /// 此行中的字段集合
        /// 此行中的字段集合的对应值
        /// 所属表名称
        /// 表中主键
        public  void AddRow(string[]columns,string[]columnvalue,string strTableName,string strColumnKey)
        {        
            
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                "Data Source=" + Server.MapPath(datapatch);
            string strColumnCount = "";
            foreach(string thiscolunmname in columns)
            {
                strColumnCount = thiscolunmname+","+strColumnCount;
            }
            string strCommandText = "select "+strColumnCount+strColumnKey+" from "+strTableName;
            
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
            DataSet myDataset = new DataSet();
            
            
            myAdpater.Fill(myDataset,strTableName);
        
            DataRow newrow = myDataset.Tables[strTableName].NewRow();
            
            for(int i=0;i<columns.Length;i++)
            {
                string strColumnName = columns[i].ToString();
                newrow[strColumnName] = columnvalue[i].ToString();
            }
                
            
            myDataset.Tables[strTableName].Rows.Add(newrow);
            
            myAdpater.Update(myDataset,strTableName);
            
            myConnection.Close();
            
        }
/// 
/// 更新数据行
/// 
/// 要更新的列集合
/// 要更新的列集合的对应值
/// 所属表名称
/// 表主键
/// 行所属的ID
        public  void updateRow(string[]columns,string[]columnvalue,string strTableName,string strColumnKey,string strColumnValue)
        {        
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                "Data Source=" + Server.MapPath(datapatch);
            string strColumnCount = "";
            foreach(string thiscolunmname in columns)
            {
                strColumnCount = thiscolunmname+","+strColumnCount;
            }
            string strCommandText = "select "+strColumnCount+strColumnKey+" from "+strTableName;
            
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
            DataSet myDataset = new DataSet();
            
            myAdpater.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            myAdpater.Fill(myDataset,strTableName);
        
            DataRow updaterow = myDataset.Tables[strTableName].Rows.Find(strColumnValue);
            
            for(int i=0;i<columns.Length;i++)
            {
                string strColumnName = columns[i].ToString();
                updaterow[strColumnName] = columnvalue[i].ToString();
            }
            
            
            myAdpater.Update(myDataset,strTableName);
            
            myConnection.Close();
            
        }
        /// 
        /// 删除行
        /// 
        /// 所属表
        /// 主键字段名
        /// 此行主键值
        public  void delectRow(string strTableName,string strColumnKey,string strColumnValue)
        {        
            string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; " + 
                "Data Source=" + Server.MapPath(datapatch);
            string strCommandText = "select "+strColumnKey+" from "+strTableName;
            
            OleDbConnection myConnection = new OleDbConnection(strConnection);
            myConnection.Open();
OleDbDataAdapter myAdpater = new OleDbDataAdapter(strCommandText,myConnection);
OleDbCommandBuilder myBuilder = new OleDbCommandBuilder(myAdpater);
            DataSet myDataset = new DataSet();
            
            myAdpater.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            myAdpater.Fill(myDataset,strTableName);
        
            DataRow newrow = myDataset.Tables[strTableName].Rows.Find(strColumnValue);
            
            newrow.Delete();
            
            myAdpater.Update(myDataset,strTableName);
            
            myConnection.Close();
            
        }
//----------------------------------------------------------------------------------
      
    
 
  
 
 
  
