• SQLServer数据库中的表对象(扩展) 荣


    表对象包括的数据库表名称、数据库表ID、数据库表类型、数据库表描述、数据库表创建日期等信息。这些信息还不够的话,则我们可以扩展该对象。
    扩展的信息可以包括:表包含的列信息、当前表的主键信息,当前表的外键信息,当前表被哪些表当成外键表,当前表的标识字段是哪个,当前表的主键字段都有哪一些。

    using System;
    using System.Data;
    using System.Collections.Generic;
    using System.Configuration;

    /// <summary>
    /// 数据库表扩展信息类.
    /// </summary>
    /// <author>天志</author>
    /// <log date="2007-09-18">创建</log>
    public class TableExpandDT: TableDT
    {
        
    public TableExpandDT()
        {
        }

        
    public TableExpandDT(DataRowView dv)
            : 
    base(dv)
        {
        }

        
    #region 数据库表列信息

        
    /// <summary>
        
    /// 存储列信息的DataView。
        
    /// </summary>
        public DataView ColumnsDataView
        {
            
    get
            {
                
    return DataMarket.GetColumnsForTable(this.Id);
            }
        }

        
    /// <summary>
        
    /// 数据库表列信息。
        
    /// </summary>
        private ColumnList<ColumnDT> columns;

        
    /// <summary>
        
    /// 数据库表列信息。
        
    /// </summary>
        public ColumnList<ColumnDT> Columns
        {
            
    get
            {
                
    if (columns == null)
                {
                    DataView dv 
    = this.ColumnsDataView;
                    columns 
    = new ColumnList<ColumnDT>();

                    
    foreach (DataRowView drv in dv)
                    {                    
                        columns.Add(
    new ColumnDT(drv));
                    }
                }
                
    return columns;
            }
        }
        
    #endregion

        
    #region 数据库表主键信息

        
    /// <summary>
        
    /// 存储主键信息的DataTable。
        
    /// </summary>
        public DataTable PKDataTable
        {
            
    get
            {
                
    return DataMarket.GetTablePK(this.TableName);
            }
        }

        
    /// <summary>
        
    /// 主键集合。
        
    /// </summary>
        private PKList<PKDT> pks;

        
    /// <summary>
        
    /// 主键集合。
        
    /// </summary>
        public PKList<PKDT> PKs
        {
            
    get
            {
                
    if (pks != null)
                {
                    
    return pks;
                }

                pks 
    = new PKList<PKDT>();
                DataView dv 
    = this.PKDataTable.DefaultView;
                
    foreach (DataRowView drv in dv)
                {
                    pks.Add(
    new PKDT(drv));
                }
                
    return pks;
            }
        }
        
    #endregion

        
    #region 数据库表外键信息

        
    /// <summary>
        
    /// 存储数据库表外键信息的DataView。
        
    /// </summary>
        public DataView FKDataView
        {
            
    get
            {
                
    return DataMarket.GetTableFK(this.Id);
            }
        }

        
    /// <summary>
        
    /// 外键集合.
        
    /// </summary>
        private FKList<FKDT> fks;

        
    /// <summary>
        
    /// 外键集合.
        public FKList<FKDT> FKs
        {
            
    get
            {
                
    if (this.fks != null)
                {
                    
    return this.fks;
                }

                
    this.fks = new FKList<FKDT>();

                DataView dv 
    = this.FKDataView;
                
    foreach (DataRowView drv in dv)
                {
                    fks.Add(
    new FKDT(drv));
                }
                
    return fks;
            }
        }
        
    #endregion

        
    #region 数据库表引用外键

        
    /// <summary>
        
    /// 存储数据库表引用外键信息的DataView。
        
    /// </summary>
        public DataView FKFromTableDataView
        {
            
    get
            {
                
    return DataMarket.GetFKFromTable(this.Id);
            }
        }

        
    /// <summary>
        
    /// 数据库表引用外键集合。
        
    /// </summary>
        private FKList<FKDT> fromTableFKs;

        
    /// <summary>
        
    /// 数据库表引用外键集合。
        
    /// </summary>
        public FKList<FKDT> FromTableFKs
        {
            
    get
            {
                
    if (this.fromTableFKs != null)
                {
                    
    return this.fromTableFKs;
                }

                DataView dv 
    = this.FKFromTableDataView;
                
    this.fromTableFKs = new FKList<FKDT>();
                
    foreach (DataRowView drv in dv)
                {
                    
    this.fromTableFKs.Add(new FKDT(drv));
                }

                
    return this.fromTableFKs;
            }
        }
        
    #endregion

        
    #region 数据库表特殊字段

        
    /// <summary>
        
    /// 标识字段。
        
    /// </summary>
        public string MarkingColumn
        {
            
    get
            {
                
    foreach (ColumnDT column in this.Columns)
                {
                    
    if (column.IsMarking)
                    {
                        
    return column.ColumnName;
                    }
                }
                
    return "";
            }
        }

        
    /// <summary>
        
    /// 主键字段。
        
    /// </summary>
        private List<string> pkColumns;

        
    /// <summary>
        
    /// 主键字段。
        public List<string> PKColumnNames
        {
            
    get
            {
                
    if (pkColumns != null)
                {
                    
    return pkColumns;
                }

                pkColumns 
    = new List<string>();
                
    foreach (PKDT dt in PKs)
                {
                    pkColumns.Add(dt.ColumnName);
                }
                
    return pkColumns;
            }
        }
        
    #endregion
    }


    这里用到了几个对象,例如PKDT、FKDT,还没有创建过,后续的文章里会创建出来。

    今天是9月18号,76年的今天,日本发动了侵华战争,中国开始了抗战。
    在14年的战争中,我们付出了巨大的代价。  金瓯破缺,百姓涂炭。
    事到如今,仍让我们思之心潮不平。



    以前看过《正红旗下》,鸦片康乾盛世之后的清政府军队的无能,让人叹息。民国后的军阀更是混蛋,招致别人侮辱,也只能以3500万来还祖宗吃喝玩乐,争强斗狠欠给自己的债。
    如果我们以后不希望自己成为自己,成为儿孙的累赘,希望大家过好日子,我觉得首先大家就要干好自己的事情,而不能当八旗子弟,也不能当成军阀,混战年年。
    现在到某些事业部门去办事,那办事效率,真是......
    殷鉴不远,将何为之?

  • 相关阅读:
    BZOJ1858[Scoi2010]序列操作 题解
    BZOJ3631[JLOI2014]松鼠的新家 题解
    BZOJ1036[ZJOI2008]树的统计Count 题解
    BZOJ1798[Ahoi2009]Seq 维护序列seq 题解
    BZOJ3212 Pku3468 A Simple Problem with Integers 题解
    BZOJ1012[JSOI2008]最大数maxnumber 题解
    洛谷P1080 国王游戏
    洛谷 P2296 寻找道路
    洛谷P1970 花匠
    洛谷 P1969 积木大赛
  • 原文地址:https://www.cnblogs.com/admin11/p/896912.html
Copyright © 2020-2023  润新知