⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buildertemp.cs

📁 通过数据库结构自动 生成三层结构代码,相当不错的一款软件
💻 CS
字号:
namespace LTP.CodeBuild
{
    using LTP.CodeHelper;
    using LTP.IDBO;
    using LTP.Utility;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.IO;
    using System.Text;
    using System.Xml;
    using System.Xml.XPath;
    using System.Xml.Xsl;

    public class BuilderTemp
    {
        private string _dbname;
        private List<ColumnInfo> _fieldlist;
        private List<ColumnInfo> _keys;
        private string _tablename;
        protected IDbObject dbobj;
        private string strXslt = "";

        public BuilderTemp(IDbObject idbobj, string dbName, string tableName, List<ColumnInfo> fieldlist, List<ColumnInfo> keys, string strxslt)
        {
            this.dbobj = idbobj;
            this.DbName = dbName;
            this.TableName = tableName;
            this.Fieldlist = fieldlist;
            this.Keys = keys;
            this.Fieldlist = fieldlist;
            this.Keys = keys;
            this.strXslt = strxslt;
        }

        public string GetCode()
        {
            StringWriter writer = new StringWriter();
            if (this.Fieldlist.Count > 0)
            {
                XslTransform transform = new XslTransform();
                transform.Load(this.strXslt);
                transform.Transform((IXPathNavigable) this.GetXml2(), null, (TextWriter) writer, null);
            }
            return writer.ToString();
        }

        private XmlDocument GetXml(DataRow[] dtrows)
        {
            Stream w = new MemoryStream();
            XmlTextWriter writer = new XmlTextWriter(w, Encoding.UTF8);
            writer.Formatting = Formatting.Indented;
            writer.WriteStartDocument(true);
            writer.WriteStartElement("Schema");
            writer.WriteStartElement("TableName");
            writer.WriteAttributeString("value", "Authors");
            writer.WriteEndElement();
            writer.WriteStartElement("FIELDS");
            foreach (DataRow row in dtrows)
            {
                string str = row["ColumnName"].ToString();
                string str2 = row["TypeName"].ToString();
                writer.WriteStartElement("FIELD");
                writer.WriteAttributeString("Name", str);
                writer.WriteAttributeString("Type", str2);
                writer.WriteEndElement();
            }
            writer.WriteEndElement();
            writer.WriteEndElement();
            writer.Flush();
            writer.Close();
            TextReader txtReader = new StringReader(writer.ToString());
            XmlDocument document = new XmlDocument();
            document.Load(txtReader);
            return document;
        }

        private XmlDocument GetXml2()
        {
            string filename = @"Template\temp.xml";
            XmlTextWriter writer = new XmlTextWriter(filename, Encoding.UTF8);
            writer.Formatting = Formatting.Indented;
            writer.WriteStartDocument(true);
            writer.WriteStartElement("Schema");
            writer.WriteStartElement("TableName");
            writer.WriteAttributeString("value", this.TableName);
            writer.WriteEndElement();
            writer.WriteStartElement("FIELDS");
            foreach (ColumnInfo info in this.Fieldlist)
            {
                string columnName = info.ColumnName;
                string typeName = info.TypeName;
                string length = info.Length;
                bool isIdentity = info.IsIdentity;
                bool isPK = info.IsPK;
                string deText = info.DeText;
                string defaultVal = info.DefaultVal;
                writer.WriteStartElement("FIELD");
                writer.WriteAttributeString("Name", columnName);
                writer.WriteAttributeString("Type", CodeCommon.DbTypeToCS(typeName));
                writer.WriteAttributeString("Desc", deText);
                writer.WriteAttributeString("defaultVal", defaultVal);
                writer.WriteEndElement();
            }
            writer.WriteEndElement();
            writer.WriteStartElement("PrimaryKeys");
            foreach (ColumnInfo info2 in this.Keys)
            {
                string str6 = info2.ColumnName;
                string dbtype = info2.TypeName;
                string text2 = info2.Length;
                bool flag3 = info2.IsIdentity;
                bool flag4 = info2.IsPK;
                string str8 = info2.DeText;
                string str9 = info2.DefaultVal;
                writer.WriteStartElement("FIELD");
                writer.WriteAttributeString("Name", str6);
                writer.WriteAttributeString("Type", CodeCommon.DbTypeToCS(dbtype));
                writer.WriteAttributeString("Desc", str8);
                writer.WriteAttributeString("defaultVal", str9);
                writer.WriteEndElement();
            }
            writer.WriteEndElement();
            writer.WriteEndElement();
            writer.Flush();
            writer.Close();
            XmlDocument document = new XmlDocument();
            document.Load(filename);
            return document;
        }

        public string DbName
        {
            get
            {
                return this._dbname;
            }
            set
            {
                this._dbname = value;
            }
        }

        public List<ColumnInfo> Fieldlist
        {
            get
            {
                return this._fieldlist;
            }
            set
            {
                this._fieldlist = value;
            }
        }

        public string Fields
        {
            get
            {
                StringPlus plus = new StringPlus();
                foreach (object obj2 in this.Fieldlist)
                {
                    plus.Append("'" + obj2.ToString() + "',");
                }
                plus.DelLastComma();
                return plus.Value;
            }
        }

        public List<ColumnInfo> Keys
        {
            get
            {
                return this._keys;
            }
            set
            {
                this._keys = value;
            }
        }

        public string TableName
        {
            get
            {
                return this._tablename;
            }
            set
            {
                this._tablename = value;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -