• 可以使用System.Data.OleDb.OleDbConnection连接Access数据库
    然后通过conn.GetSchema读出想要的信息: 包括数据库的表名、字段名、类型

 

  • /// <summary>  
  • /// 返回Mdb数据库中所有表表名  
  • /// </summary>  
  • publicstring[] GetShemaTableName(string database_path, string database_password) 
  •      try 
  •      { 
  •          //获取数据表  
  •          OleDbConnection conn = new OleDbConnection(); 
  • conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password='" + database_password + "Data Source=" + database_path; 
  •          conn.Open(); 
  •          DataTable shemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, newobject[] { null, null, null, "TABLE" }); 
  •          int n = shemaTable.Rows.Count; 
  •          string[] strTable = new string[n]; 
  •          int m = shemaTable.Columns.IndexOf("TABLE_NAME"); 
  •          for (int i = 0; i < n; i++) 
  •          { 
  •              DataRow m_DataRow = shemaTable.Rows[i]; 
  •              strTable[i] = m_DataRow.ItemArray.GetValue(m).ToString(); 
  •          } 
  •          return strTable; 
  •      } 
  •      catch (OleDbException ex) 
  •      { 
  •          MessageBox.Show("指定的限制集无效:/n" + ex.Message); 
  •          returnnull
  •      } 
  •      finally 
  •      { 
  •          conn.Close(); 
  •          conn.Dispose(); 
  •      } 
  • /// <summary>  
  • /// 返回某一表的所有字段名  
  • /// </summary>  
  • publicstring[] GetTableColumn(string database_path,string varTableName) 
  •      DataTable dt = new DataTable(); 
  •      try 
  •      { 
  •          conn = new OleDbConnection();
  •          conn.ConnectionString = "Provider = Microsoft.Jet.OleDb.4.0;Data Source=" + database_path; 
  •          conn.Open(); 
  •          dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, varTableName, null }); 
  •          int n = dt.Rows.Count; 
  •          string[] strTable = new string[n]; 
  •          int m = dt.Columns.IndexOf("COLUMN_NAME"); 
  •          for (int i = 0; i < n; i++) 
  •          { 
  •              DataRow m_DataRow = dt.Rows[i]; 
  •              strTable[i] = m_DataRow.ItemArray.GetValue(m).ToString(); 
  •          } 
  •          return strTable; 
  •      } 
  •      catch (Exception ex) 
  •      { 
  •          throw ex; 
  •      } 
  •      finally 
  •      { 
  •          conn.Close(); 
  •      } 
posted on 2013-08-28 22:50  程路  阅读(557)  评论(0编辑  收藏  举报