[转]C#获得Access数据库中的表名,以及根据表名获取字段名

  • 可以使用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(); 
  •      } 

转载于:https://www.cnblogs.com/chenyouc/p/3288122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值