老生常谈,根据表结构生成代码

[起因]

   大多数朋友应该都有这样的经历,在工作中,经常从"自己的老系统"里找代码,因为功能差不多,页面差不多,如果有现成的修改下,工作量肯定会小很多
新的功能一般开发完成后也都会留有备份,这时候,哪些功能自己曾经写过,哪些没有写过,哪些部分可以重用,心里非常清楚,这样在用的时候找就可以了,或许这也是经验的组成部分,这种经历不多阐述了,相信各位都能体会到

   然而,虽说COPY非常轻松,但是人脑毕竟不是电脑,有时候突然发现移动硬盘坏了,或者光盘读不出来了,再或者找不到U盘了,就是说由于某种原因"经验"丢了,怎么办?呵呵,天无绝人之路,我还记得关键字呢(此功能自己未实现过,但了解从哪里可以查阅到),百度一下,谷歌一下,问题还是解决了.

   最终有一天出现特殊情况了,如,网速奇慢,或者搬家后暂时无网络,再或者公司禁网,再或者网站更新或者关闭,等等一系列原因导致自己不得不重新写这些代码,真不走运,花费一些时间重新编写,重新测试,重新发现那些非常熟悉的但不小心忽略了的BUG,再修改,再编译,再测试,最终问题解决.但是花费了一些时间和精力,同时兴趣值减少10%

   鉴于上述情况,遂决定开发这么一款小软件,使得可以自动生成自己经常需要用的代码,我非常相信各位在较短的时间内都可以开发出来,因为它确实灰常简单,但是比较"麻烦",以致于我每次写重复代码的时候想到要写这么一个工具出来,然而每次又都因为它的局限性,应用范围和其它原因放弃掉了,一次一次的想,一次一次的放弃,最终决定无论什么原因都坚持下去,把它写出来,哪怕只是用一次,坚决让电脑去做它能做到的事情,解放我出来,这个小软件诞生了.甚至连名字都没有想好

[介绍]
    感觉有必要说一下设计思路及实现过程
思路
基本思路就是,连接数据库--->从库中获取所有表列表--->查询得到表字段信息

提供代码模板,使用固定标签名称--->使用上述得到的表字段信息进行替换标签的工作--->将替换后的字符串以.CS为扩展名保存到本地

其中,代码模板可有限维护,所谓有限维护是指不大可能完全变样,因为替换的就那么几个系统变量,如表名,字段名,当前时间等等,如果整个模板都变了的话,在新模板时我不清楚是否还需要这些系统变量?如果不需要!@#$%^&


[实现过程]
     在获取库中所有表列表时发现自己不会写,SQL知识非常弱,不过最终得到了解答,实在对那些系统表里的字段不了解,仔细学习应该还能提到更多信息
[code=SQL]SELECT NAME FROM DBO.SYSOBJECTS WHERE OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1 ORDER BY [NAME][/code]
上句是取表列表

查询表的字段信息同样从网上搜出来的,这一句是取字段信息,原文见下边
http://www.cnblogs.com/mingyeh/archive/2008/06/17/1223516.html
代码如下

ContractedBlock.gif ExpandedBlockStart.gif Code
string sql = string.Format(@"
                            SELECT
                                syscolumns.colid,
                                Sysobjects.name AS [TableName],
                                syscolumns.name AS [ColumnName],
                                systypes.name AS [DataType],
                                syscolumns.length AS [DataLength],
                                sys.extended_properties.[value] AS [Description],  
                                syscomments.text AS [DefaultValue],
                                syscolumns.isnullable AS [NullAble]    
                            FROM
                                syscolumns INNER JOIN systypes
                                ON syscolumns.xtype = systypes.xtype
                                LEFT JOIN sysobjects ON syscolumns.id = sysobjects.id
                                LEFT OUTER JOIN sys.extended_properties ON
                                ( sys.extended_properties.minor_id = syscolumns.colid
                                AND sys.extended_properties.major_id = syscolumns.id)
                                LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
                            WHERE syscolumns.id IN
                            (SELECT id FROM SYSOBJECTS WHERE xtype = 'U' AND NAME = '{0}') AND (systypes.name <> 'sysname')
                            ORDER BY syscolumns.colid
", tbName);


查询表的主键,刚还在坛子里看见有人问了,还回记住了,

sp_pkeys 表名


这个是取表主键,这些都得到了,相信下边的工作更没有什么难度了,无非是取模板数据,替换固定标签之类,不再多说,最后提供源码下载

今天刚发现的一个更全面的文章,必须的~贴上,备注

http://www.cnblogs.com/over140/archive/2008/12/23/1360150.html

[源码]

小灰SVN
svn://svnhost.cn/CodeCreate
http://www.svnhost.cn/Project/Detail-202.shtml

在下的个人主页
http://www.tstring.com.cn

生成代码的方法除了模板+标签外,还有其它解决方案吗?有的,只是不够灵活而已,感兴趣的朋友可以搜索System.CodeDom相关资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值