如何获取数据库架构

简介: 最近 关注了一款数据层映射生成工具,其中对它能自动识别数据库中的表以及表中的字段一直为惑不解.干脆用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协议,支持水平扩容或者缩容的金融级高可用的云原生分布式数据库。
337 2
数据库TiDB-01.数据库架构概述
|
9天前
|
运维 负载均衡 监控
软件体系结构 - 关系数据库(3)主从架构
【4月更文挑战第26天】软件体系结构 - 关系数据库(3)主从架构
22 0
|
13天前
|
存储 SQL 数据库
软件体系结构 - 架构风格(10)数据库系统架构风格
【4月更文挑战第21天】软件体系结构 - 架构风格(10)数据库系统架构风格
30 0
|
2月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
|
2月前
|
SQL 存储 数据管理
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
36 1
|
2月前
|
SQL NoSQL 数据库
深入浅出:微服务架构下的数据库事务管理
【2月更文挑战第12天】 在当今微服务架构日益流行的背景下,如何有效地管理跨服务的数据库事务成为了开发与维护中的一大挑战。本文旨在探讨微服务环境下数据库事务管理的关键技术和策略,包括但不限于分布式事务的基本概念、常见的解决方案(如两阶段提交、补偿事务等),以及这些方案在实际应用中的优缺点比较。通过深入浅出的方式,本文希望能够帮助读者更好地理解并应对微服务架构下的数据库事务管理问题,进而提升系统的稳定性和可靠性。
|
3月前
|
NoSQL 数据管理 数据库
浅谈微服务架构下的数据库设计策略
在当今快速发展的软件工程领域,微服务架构以其灵活性和可扩展性成为了众多企业和开发者的首选。然而,随着服务的细分,数据管理和存储面临着前所未有的挑战。本文将探讨微服务架构下的数据库设计策略,包括服务间数据的独立性、事务一致性问题的处理、以及数据迁移和备份的最佳实践。我们将通过对比传统单体架构与微服务架构下的数据库设计差异,提出几种有效的数据库设计方案,旨在为开发者提供在微服务环境下处理复杂数据问题的思路和方法。
58 0