?? buildertemp.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 + -