本文共 3381 字,大约阅读时间需要 11 分钟。
ltscode代码生成器,本人DIY的。
写了一些常规模式的网站后发现代码生成器的用处,但使用网上的代码生成器生成的代码大多不符合我的书写格式,而那些代码生成器的自定义模板功能大多没有(也许是我笨,没找到),遂DIY。
1、使用方法:打开代码生成器 ltscodenew.exe。首先自动进入连接数据库窗口,如下图所示
选择相依的服务器名(mssql的服务器名或ip地址)和身份认证方式,点击“测试连接”按钮,如正确登陆mssql服务器,在“数据库”下拉列表中选择需要的数据库。点击“确定”按钮进入程序主界面。
从左边树的“表”节点中右键单击某一个表,右键菜单为软件所加载的所有代码自定义生成模板。我已经为制作好了三个模板(Bll、model、proc),模板的制作过程下面会有介绍。选择某个模板后会按照表结构生成相应的c#代码,显示在右边的输入框中。
点击“连接数据库”按钮将会进入刚才的连接数据库窗口重新连接其他数据库。“刷新”按钮用来刷新左边树形结构显示的数据库结构。“输出所有代码到文件夹”按钮是将所有的表分别套用所有的模板,生成代码到用户选定的文件夹。
2、模板制作方法:(以测试表users和model模板为例介绍整个生成过程)
(1)、有表结构生成XML。
stu表结构:userid int、username varchar(15)、userpwd varchar(15)
生成的XML如下:
<?xml version="1.0" encoding="gb2312"?>
<root> <table>users</table> <column> <colname>userid</colname> <typename>int</typename> <length>4</length> <isnullable>0</isnullable> <description></description> <defaultvalue></defaultvalue> <primarykey>1</primarykey> </column> <column> <colname>username</colname> <typename>varchar</typename> <length>15</length> <isnullable>0</isnullable> <description></description> <defaultvalue></defaultvalue> <primarykey>0</primarykey> </column> <column> <colname>userpwd</colname> <typename>varchar</typename> <length>15</length> <isnullable>0</isnullable> <description></description> <defaultvalue></defaultvalue> <primarykey>0</primarykey> </column></root>(2)、通过XML与模板XSL文件生成临时代码字符串。
请将你自定义的XSL文件放在软件目录下的“Template”目录下
model的XSL文件如下:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0"xmlns:xsl=""><xsl:template match="/">
<xsl:variable name="tablename" > <xsl:for-each select="root"> <xsl:value-of select="table"/> </xsl:for-each> </xsl:variable>using System;namespace Model{ /// <summary> /// 实体类<xsl:copy-of select="$tablename" /> 。(属性说明自动提取数据库字段的描述信息) ///</summary> [Serializable] public class <xsl:copy-of select="$tablename" /> { public <xsl:copy-of select="$tablename" />() {} #region Model <xsl:for-each select="root/column"> private <xsl:value-of select="typename"/> _<xsl:value-of select="colname"/>; </xsl:for-each> <xsl:for-each select="root/column"> /// <summary> /// <xsl:value-of select="description"/> /// </summary> public <xsl:value-of select="typename"/><xsl:text> </xsl:text> <xsl:value-of select="colname"/> { set {_<xsl:value-of select="colname"/>=value;} get {return _<xsl:value-of select="colname"/>;} } </xsl:for-each> #endregion Model}
} </xsl:template></xsl:stylesheet>
以上两个步骤的操作已经集成在LtsBll.dll文件的Tools.CreateCodeByXml函数中。
(3)、再使用自定义的dll文件加工临时代码,最后生成可使用的代码。
自定义的dll文件中的加工临时代码的函数同一使用函数名CreateCode。model.cs代码如下:
using System;
using System.Collections.Generic;using System.Linq;using System.Text;using ltsmodel;using LtsBll; namespace model{ public class model { /// <summary> /// /// </summary> /// <param name="tableName">表名</param> public string CreateCode(string tableName) {//通过表名和xsl生成临时代码
string StrReturn = Tools.CreateCodeByXml(tableName, "model.xsl");//获取sql字段类型和C#变量类型对照表
List<Ltsmodel> txtmodel= Tools.GetDbToCS(); //将临时代码中的sql字段类型替换成C#变量类型 StrReturn=Tools.StringReplace(StrReturn, txtmodel); return StrReturn; } }}需要注意:LtsBll.dll与ltsmodel.dll在软件目录下。制作好自己的dll文件后可直接拷贝到软件目录下的“dll”文件夹下或者在软件中右击表的菜单中选择“添加模板dll”。如果您编写的dll文件没有错误但是加载后报错找不到相应的函数,可将LtsBll.dll文件复制到dll目录下,用您的模板生成一遍,关闭软件删除dll目录下的LtsBll.dll文件即可。对于此错误,我一直找不到原因,希望热心网友能解决此问题。
3、写在最后:以前还是学生的时候感觉《图书馆管理系统》经常用到,技术简单,所以在网上一搜一大堆;现在工作了感觉类似CMS的系统做多了代码生成器会经常用到,而且在网上一搜一大堆,所以得出结论:代码生成器的技术很简单。
可执行文件:
源码: 源码请使用vs2008打开
转载地址:http://ajoyz.baihongyu.com/