zoukankan      html  css  js  c++  java
  • 得到Access数据库中的所有表名

    得到Access数据库中的所有表名

    实际开发中,我们会遇到很多问题.有些问题可能以前遇到过,只是没有将解决问题的方法写下来,到后来再碰见时也便忘记了.因此造成了时间与经济上的浪费.如果我们能够抽点时间将解决问题的方法写下来,我想无论是对于工作还是对于个人的成长都会有一定的好处.

    下面是本人得到Access数据库中的所有表名的解决方法,可能不够完善,希望大家能够指正.原与大家相互学习,共同进步.

     1using System;
     2using System.Data;
     3using System.Data.OleDb;
     4
     5namespace Test
     6{
     7    public class DataOle
     8    {
     9        /// <summary>
    10        /// 返回Mdb数据库中所有表表名
    11        /// </summary>
    12        /// <param name="strDbPath">Access数据文件路径</param>
    13        /// <returns>表名数组</returns>

    14        public static string[] GetShemaTable(string strDbPath)
    15        {
    16            //创建OleDb数据库连接
    17            OleDbConnection pOleConn; 
    18
    19            //设置数据连接
    20            pOleConn=new OleDbConnection();
    21            pOleConn.ConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +strDbPath ;
    22            pOleConn.Open();
    23
    24            try
    25            {
    26                //获取数据表
    27                DataTable shemaTable=pOleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});
    28                
    29                int n=shemaTable.Rows.Count ;
    30                string[] strTable=new string[n];
    31                int m=shemaTable.Columns.IndexOf("TABLE_NAME");
    32
    33                for(int i=0;i<n;i++)
    34                {
    35                    DataRow m_DataRow=shemaTable.Rows[i];
    36                    strTable[i]=m_DataRow.ItemArray.GetValue(m).ToString();
    37                }

    38                
    39                return strTable;
    40            }

    41            catch(OleDbException ex)
    42            {
    43                Console.WriteLine("指定的限制集无效!");
    44                Console.WriteLine(ex.Message);
    45                return null;
    46            }
        
    47            finally
    48            {
    49                pOleConn.Close();
    50                pOleConn.Dispose();
    51            }

    52        }

    53    }

    54
    55
    56    public class AppMain
    57    {
    58        public static void Main()
    59        {
    60            string[] TableName=DataOle.GetShemaTable(@"C:\1.mdb");
    61
    62            if(TableName!=null)
    63            {
    64                //Write each table name
    65                for(int i=0;i<TableName.Length;i++)
    66                {
    67                    Console.WriteLine("DataTale {0} Name is {1}",i,TableName[i]);
    68                }

    69            }

    70
    71            Console.WriteLine("OK");
    72        }

    73    }

    74}
  • 相关阅读:
    @当你输入一个网址的时候,实际会发生什么?
    @Java魔法类——unsafer应用解析
    !@面试官:说说双亲委派模型?
    @JAVA字符串格式化
    @double精度比float低吗?
    @java类中资源加载顺序
    !@阿里资深架构师浅谈一个Java类的生命周期
    @String对象的那些事,几行代码就解释得清清楚楚
    @final、finally、finalize有什么区别?
    @35个Java代码优化的细节,你知道几个?
  • 原文地址:https://www.cnblogs.com/3echo/p/555335.html
Copyright © 2011-2022 走看看