zoukankan      html  css  js  c++  java
  • C# 获取Access数据库中所有表名及其列名、列类型

    摘要:

    DataTable tables = connnection.GetOleDbSchemaTable( OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

    DataTable schemaTable = connnection.GetOleDbSchemaTable (OleDbSchemaGuid.Columns, new object[] { null, null, tblName, null });

    下面贴出代码:

            /// <summary>
            /// 获取Access数据库中指定表的所有列
            /// </summary>
            private List<string> getExcelTableColumn(string tableName)
            {
                //获取表名
                string tblName = tableName.Trim();
                List<string> list = new List<string>();
                if (string.IsNullOrEmpty(tblName))
                {
                    return list;
                }
                //
                OpenFileDialog of = new OpenFileDialog();
                of.Filter = "Access文件(*.mdb)|*.mdb";
                if (of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    try
                    {
                        string myString = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =  " + of.FileName + ";";
                        OleDbConnection oconn = new OleDbConnection(myString);
                        oconn.Open();
    
                        //获取表中的所有列信息
                        DataTable schemaTable = oconn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tblName, null });
                        //获取到列名称
                        foreach (DataRow row in schemaTable.Rows)
                        {
                            list.Add(row["column_name"].ToString());
                        }
                    }
                    catch (Exception exc)
                    {
                        //PublicMethod.MessageError("加载Access文件过程发生异常,请重试!");
                    }
                }
                return list;
            }
    
            /// <summary>
            /// 获取Access数据库中指定表的所有列
            /// </summary>
            /// <param name="con">连库字符串</param>
            /// <param name="tableName">表名称</param>
            /// <returns></returns>
            private List<string> getExcelTableColumn(string con, string tableName)
            {
                //获取表名
                string tblName = tableName.Trim();
                List<string> list = new List<string>();
                if (string.IsNullOrEmpty(tblName))
                {
                    return list;
                }
                //
                try
                {
                    OleDbConnection oconn = new OleDbConnection(con);
                    oconn.Open();
    
                    //获取表中的所有列信息
                    DataTable schemaTable = oconn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tblName, null });
                    //获取到列名称
                    foreach (DataRow row in schemaTable.Rows)
                    {
                        list.Add(row["column_name"].ToString());
                    }
                }
                catch (Exception exc)
                {
                    //PublicMethod.MessageError("加载Access文件过程发生异常,请重试!");
                }
                return list;
            }
    
            /// <summary>
            /// 获取Access数据库中所有表名称
            /// </summary>
            private List<string> getExcelTables()
            {
                List<string> list = new List<string>();
                OpenFileDialog of = new OpenFileDialog();
                of.Filter = "Access文件(*.mdb)|*.mdb";
                if (of.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    try
                    {
                        string conStr = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =  " + of.FileName + ";";
                        OleDbConnection oconn = new OleDbConnection(conStr);
                        oconn.Open();
    
                        //获取库中的所有表信息
                        DataTable tables = oconn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                        foreach (DataRow item in tables.Rows)
                        {
                            list.Add(item["table_name"].ToString());
                            getExcelTableColumn(conStr,item["table_name"].ToString());//可以在这获取下表的列
                        }
                    }
                    catch (Exception exc)
                    {
                        //PublicMethod.MessageError("加载Access文件过程发生异常,请重试!");
                    }
                }
                return list;
            }
  • 相关阅读:
    SQL审核平台
    Redis单线程为什么快简单理解
    性能测试关注指标
    nmon
    pycharm安装教程
    MAVEN中央仓库地址大全
    MAVEN概念、安装与配置、配置文件
    linux在线模拟地址
    HTTP学习链接、书籍
    Java启动exe
  • 原文地址:https://www.cnblogs.com/bdf216/p/2802672.html
Copyright © 2011-2022 走看看