感谢大家的支持,感谢大家提出自己的看法。衷心的感谢,真的。
应该是先写第二步的,但是想一想还是先写第三步吧。
一般大项目里面都会有很多的基础信息的表,比如学历、职称等等,最近做了一个项目,居然有四十多个。如果一个一个地写是不是太麻烦了呢?
下面就要介绍一种方法 —— 基本一个页面搞定。
还是先说一下前提吧
VS2003 、 SQL2000 、 webform ,办公系统里的基础信息表的维护。
1、SQL2000里的几个系统表
写过代码生成器的Tx对这几个表都很熟悉吧,sysobjects 、syscolumns 、systypes 。
请打开企业管理器(查询分析器也可以),建立一个视图,粘贴下面的SQL语句,然后保存视图,名字就叫做 V_Sys_TableInfo 吧,后面要用到的哦。
看不懂SQL语句没关系,运行一下看看结果就知道了。你发现了什么?你的数据库里的表名、字段名、字段类型和字段大小。
那么这些信息有什么用呢?请先回顾一下第一步里保存数据都需要哪些元素。表名、字段名、用户输入的信息。
知道我要怎么用了吧,对,就是要通过表名来获取表所拥有的字段名。
2、DataGrid是不是也可以这么用。
开始绘制表单了。一个一个文本框的拖拽是不是挺烦的,那么一起把需要的控件逗弄出来怎么样?
想想上面得到的记录集,是不是可以利用一下呢?
建立一个UserControl ,拖一个DataGrid 出来,设置三列,第一列绑定 FieldName ,第二列空,第三列设置成模版列,放一个文本框。代码如下
进入后台,绑定DataGrid。想象一下会出现什么样的效果。
运行效果。
先不详细说明了,发代码先。
UserControl 页面 BaseForm.ascx
表单页面 MoreTable.aspx
用户控件只使用一个就可以了。(不知道这算不算抽象)
表单控件是一个页面对应一个数据表,其实也就是设置一下表名,和显示一下字段的中文名。
优点呢:代码少,其他的就不说了。
缺点就很多了:只能用文本框、要单独设置中文名、页面死板不灵活、不够OO,只能单表操作。
不过除了不够OO(准确点说是一点都不OO:)),其他的是都可以改进的。至于怎么改进,如果您感兴趣可以想一想,方法实在是太多了。
ps:我现在写程序并不是用的这种方法,只是思路是一样的。这种方法,是我刚写的,在实际中没有应用过的。