当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > DBForm的设计来源以及主要构想

ASP.NET
Asp.Net 通用数据操作类 (附通用数据基类)
asp.net汉字转拼音和获取汉字首字母的代码
asp.net 多字段模糊查询代码
OpenCms 带分页的新闻列表
URLRewriter最简单入门介绍 URLRewriter相关资源
asp.net Repeater取得CheckBox选中的某行某个值
asp.net清空Cookie的两种方法
asp.net一些很酷很实用的.Net技巧
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
asp.net TripleDES加密、解密算法
Asp.net中防止用户多次登录的方法
asp.net Repeater取得CheckBox选中的某行某个值的c#写法
asp.net DataGridView导出到Excel的三个方法[亲测]
C#,winform,ShowDialog,子窗体向父窗体传值
asp.net学习中发现的比较完整的流程
ASP.net 页面被关闭后,服务器端是否仍然执行中?
asp.net Context.Handler 页面间传值方法
asp.net xml序列化与反序列化
asp.net实例代码protected override void Render(HtmlTextWriter writer)
asp.net(c#)捕捉搜索引擎蜘蛛和机器人

ASP.NET 中的 DBForm的设计来源以及主要构想


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 204 ::
收藏到网摘: n/a

DBForm的设计来源以及主要构想?DBForm的设计思想来源于我最近作的学生信息管理系统的要求,整个信息系统要求的查询信息比较多,而且大多是模糊查找(贷款,奖学金,勤工助学,考试情况,个人情况等等)。以贷款的查询来举例,主要包括了学生学号,姓名,班级,年级,所属学院等个人基本情况和家庭收入状况,所在地区,学习成绩等级等个人信息扩展情况以及贷款类别,贷款时间,贷款金额等贷款方面的具体信息,数据量众多,编写用于查询的sql语句十分麻烦,况且将要完成的模块比较多,每个模块的查询信息却是大体相同,如果每一个模块都单独写查询语句,工作量真得很大?仔细分析了各个模块的功能之后,我们发现模块间查询的界面,主要操作大体相似,所不同的,主要是用于查询的字段和窗体控件名等信息,于是我们开始了整个代码的提炼工作,提出了基本的DBForm构想:根据遍历窗体中的控件组,提取出要查询的数据库字段以及用户输入的数据WinForm窗体中,有一个非常好的Tag属性,可以非常方便的保存我们所需要的数据WebForm窗体中,很遗憾,没有Tag属性,我们就自己继承了类,添加了Tag属性,满足我们DBForm中队数据库子端的添加要求?查询不仅仅包括字段名,还包括具体需要查询的操作(如TextBox控件中的tag属性我们便定义为 数据库字段_操作符,例子:studentID_LIKE,直观,也很形象,并且LIKE操作符可以在运行期间动态更改成为”=”等操作符,实现精确匹配)?整个DBForm的架构中,要求能够有足够的支持弹性,当前的要求是希望能够同时支持好WinForm和WebForm,我们便采用了窗体数据的抓取和数据库相关Sql语句的生成相分离的方法,尽可能的增加整个系统开发的弹性,中间,采用FormInfoEntity类进行窗体数据的封装,传递FormInfoEntity类中主要包含了FormInfoList,JoinInfoList,其中FormInfoList中主要保存了提取出来的数据库字段以及对应得用户输入信息,字段的类型(数值还是字符串),以及操作符号等等。JoinInfoList主要是要查询的表的连接信息。?在整个DBForm的编写中,我发现,整个系统的架构不仅仅使用与查询的情况,在修该,添加,删除的时候,也有很大的用处,只要提取出来了相关窗体的信息,Sql语句的生成是一件很轻松的工作,于是就给DBForm扩展上了修改数据库的功能,整个工作也就是添加了相关的Sql生成类和窗体信息解析类(用于修改的窗体信息和用于查询的窗体信息描述不同)?整个DBForm的构架比较有扩展性,能够满足今后多种数据来源的要求,比如说InfoPath中的xml文件,来自WebService中的相关查询等等。