如何获取数据库架构

简介: 最近 关注了一款数据层映射生成工具,其中对它能自动识别数据库中的表以及表中的字段一直为惑不解.干脆用ILDASM直接的慢慢的仔细的看了下它的原代码,总算明白了其实代码不长,很简单如下  private void button1_Click(object sender, System.
最近 关注了一款数据层映射生成工具,其中对它能自动识别数据库中的表以及表中的字段一直为惑不解.干脆用ILDASM直接的慢慢的仔细的看了下它的原代码,总算明白了
其实代码不长,很简单如下
  private void button1_Click(object sender, System.EventArgs e)
        {   
            OleDbConnection con
=new OleDbConnection() ;
            TreeNode root
=new TreeNode("数据库");

           
try
            {               
                con.ConnectionString
="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=.";
                con.Open();
           
                DataTable dt
=con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables ,
                   
new object[] { null, null, null, "TABLE" });
           
               
//  查看莫一个表中的所有字段
                OleDbDataReader read=null;
                OleDbCommand cmd
=null;
           
                TreeNode tnd;
               
for (int i=0;i<dt.Rows.Count;i++)
                {
                    tnd
=new TreeNode(dt.Rows[i]["TABLE_NAME"].ToString());
                   
string sql="select * from ";
                    sql
=string.Concat(new string[]{sql,"[",dt.Rows[i]["TABLE_NAME"].ToString(),"]"," WHERE 1=-1"});
                    cmd
=new OleDbCommand(sql,con);
                    read
=cmd.ExecuteReader();

                   
for (int j=0; j<read.FieldCount;j++)
                    {
                        TreeNode tn
=new TreeNode(read.GetName(j));
                        tnd.Nodes.Add(tn);
                    }
                    read.Close();
                    cmd.Dispose();
                    root.Nodes.Add(tnd);                   
                }   
               
            }   
           
catch(Exception e1)
            {
                MessageBox.Show(e1.Message);
            }
           
finally
            {
                con.Close();
               
this.treeView1.Nodes.Add(root);
            }
           
        }

       
    }

基本上如此,有些界面的代码,改改就好了
效果如下

目录
相关文章
|
2月前
|
SQL NoSQL 前端开发
基于BS架构的饰品购物平台设计与实现(程序+文档+数据库)
基于BS架构的饰品购物平台设计与实现(程序+文档+数据库)
|
3月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
4月前
|
存储 缓存 关系型数据库
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
阿里云RDS率先推出新型存储类型通用云盘,提供低延迟、低成本、高持久性的用户体验。
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
|
5月前
|
存储 SQL Java
数据库TiDB-01.数据库架构概述
TiDB兼容MySQL 5.7协议,支持水平扩容或者缩容的金融级高可用的云原生分布式数据库。
343 2
数据库TiDB-01.数据库架构概述
|
4天前
|
缓存 监控 负载均衡
关系型数据库设计集群架构
【5月更文挑战第5天】关系型数据库设计集群架构
17 3
关系型数据库设计集群架构
|
15天前
|
存储 运维 物联网
【专栏】OceanBase 是一款先进的分布式数据库系统,以其分布式架构、高扩展性、高可用性和强一致性特点,应对大规模数据处理挑战
【4月更文挑战第29天】OceanBase 是一款先进的分布式数据库系统,以其分布式架构、高扩展性、高可用性和强一致性特点,应对大规模数据处理挑战。它支持混合负载,适用于金融、电商和物联网等领域,提供高性能、低成本的解决方案。尽管面临技术复杂性、数据迁移和性能优化等问题,通过合理策略可克服挑战。随着技术发展,OceanBase 在数字化时代将持续发挥关键作用。
|
15天前
|
运维 负载均衡 监控
软件体系结构 - 关系数据库(3)主从架构
【4月更文挑战第26天】软件体系结构 - 关系数据库(3)主从架构
24 0
|
20天前
|
存储 SQL 数据库
软件体系结构 - 架构风格(10)数据库系统架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(10)数据库系统架构风格
31 0
|
2月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
|
2月前
|
SQL 存储 数据管理
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
36 1