ASP.NET开发,从二层至三层,至面向对象 (4)
继续上一篇《ASP.NET开发,从二层至三层,至面向对象 (3)》http://www.cnblogs.com/insus/p/3826706.html 。我们更深层次学会了逻辑层对象,即各个具体对象与数据库之间的逻辑类。 我们有分为有处理Access的SQL语句和SQL Server的SQL语句的,还有处理存储过程和参数的。
今天Insus.NET再从处理SQL语句对象,再创建一个对象叫SqlStatement吧。让用户引用这个类时,无需再写SQL语句,只管传入字段,或值,或条件。
实现之前,我们先想一想,SQL语句有SELECT,UPDATE,DELETE,INSERT四种,其中有些SQL语句还需要带条件。细节如下,
SELECT语句:
SELECT * FROM table
SELECT * FROM table WHERE xxx= yyy
SELECT col1,col2,...FROM table
SELECT col1,col2,... FROM table WHERE xxx= yyy
UPDATE语句:
UPDATE table SET xxx= yyy WHERE zzz=aaa
DELETE语句:
DELETE FROM table WHERE xxx= yyy
INSERT语句:
INSERT INTO table(col,col2) VALUES(xxx,yyyy)
等等 。
因此,我们需要创建一个字段的类别,如Field:
这个类有两个property,是为了让用户在SELECT,INSERT或是更新时,能传入所显示,插入或是更新的字段。
接下来,我们再创建一个WHERE条件类,如Condition,它是让用户在SELECT带有WHERE条件,当然在更新或是删除时,SQL语句是少不了条件。
这个类,它有三个property。field是指定字段,operators是操作, 你是使用"=",">"还是“<"等,最后一个property为指值。
OK,现在我们可以创建可封装的类SqlStatement,看看:
写到这里,也许会有网友会问题,有些情形上面的无实现。Insus.NET想,这毕竟是SQL语句,它比起存储过程来说,一些不足之处,自然显示出来,因此Insus.NET一直在使用存储过程的原因。上面这个SqlStatement类,还是可以扩展的。这需要发挥个人的想象力了。
为了能让大家能更好的使用。下面Insus.NET重构前几篇写好的类Item,改为应用这个SqlStatement类。
先来看看GetAll()方法,注释掉的语句,是原来的方法:
让你自动产生SQL语句。
如果是SQL数据库,最后两句:
BizBaseSQL objBizBaseSQL = new BizBaseSQL();objBizBaseSQL.Sql = objSqlStatement.GenerateSelectStatement();return objBizBaseSQL.ExecuteDataSet().Tables[0];
View Code
下面是重构Insert()方法,数据添加,有地方需要注意的,在处理字段时,SELECT语句,值传入的是null,而插入的SQL语句,需要把value传入property。当然你写UPDATE更新时,也应如此。上面的SqlStatement类, Insus.NET并没有写处理当没有值,需要让动态产生的SQL有传入为null,如[xxx] = null等。
删除方法,需要传入WHERE条件。下面Insus.NET只是演示传入单个条件,如果WHERE条件中,还带有OR,AND等时,如何传,需要想一想。
下面是重构获取标量的方法,也就是让程序能执行ExecuteScalar()方法:
这几篇中,没有演示过更新的方法。因为BizBase或者BizBaseSQL类的几个方法,均有演示。不过Insus.NET在下面还是列举一个更新的方法,也就是为Item类,有update()方法:
本篇演示源程序(Access DB; .NET Framework 4.0;):
http://download.cnblogs.com/insus/ASPDOTNET/Asp_OOP4.rar
注:文章太长了,写成续集,请关注......
转载于:https://www.cnblogs.com/insus/p/3837898.html
ASP.NET开发,从二层至三层,至面向对象 (4)相关推荐
- 【ASP.NET开发】.NET三层架构简单解析
这篇文章本来应该很早就写出来的,但是一直苦于自己的精神能力有限,而且已经到了我们学校的考试周,所以时间上还是有点紧迫.关键的一点就是,找不到合理的思路来写,思路没有的话,就算是再好的素材,也写不来大家 ...
- 镇江php开发,myweb 我的家乡镇江,web技术开发的网站,三层架构,5大模块设计 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
文件名称: myweb下载 收藏√ [ 5 4 3 2 1 ] 开发工具: HTML 文件大小: 8226 KB 上传时间: 2015-04-11 下载次数: 0 提 供 者: min 详细 ...
- 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结
至从使用过一次MVC进行团队开发后,体会到了面向对象开发软件的便利.使用MVC的时候,各个层之间的低耦合使得他们之间的联系非常的第,也就降低了模块之间的依赖程度. 首先介绍一下MVC的意义,和各个层面 ...
- ASP.NET开发,简化与封装
微软的ASP.NET的开发,就是面向对象的编程,当然前端也能体验至面向对象的话,使用Web控件也必须的. 任一控件,我们均可以在后端.aspx.cs或.aspx.vb程序中new一个对象出来. 很多场 ...
- 专门为ADO二层升三层的咏南中间件(特种用途)
专门为ADO二层升三层的咏南中间件(特种用途) 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmai ...
- ASP.NET 开发
ASP.NET 开发 母版页和内容页 给每个页面定义公共的元素,然后在内容页对应控件中写各元素的不同实现 内容页创建方式,在创建Web窗体时勾选"选择模板页" 服务器控件对Text ...
- 数通 | 从二层、三层的概念切入这段时间学习的数通知识
文章目录 话题引入 实例分析一波 实例一 实例二 实例小结 补充内容 局域网&以太网 网络适配器 三层交换机 VLAN 没讨论到的地方 参考资料 话题引入 在数通学习中,不可避免的会看到&qu ...
- 《ASP.NET 开发从入门到精通》----2.3 编译和部署ASP.NET程序
本节书摘来自异步社区<ASP.NET 开发从入门到精通>一书中的第2章,第2.3节,著 张明星 ,责任编辑 张 涛, 更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 用 ASP.NET 开发 Web 服务的五则技巧
(转的,作者不详) 一.禁用HTTP POST/GET协议 除非另外指定,否则,.NET将试图把Web服务绑定到三种协议:HTTP/POST.HTTP/GET和SOAP.之所以说"试图&qu ...
最新文章
- DeepChem | PyTorch中用自定义层实现DeepChem的GraphConvLayer
- 升级Windows Phone Developer Tools Beta
- 在 Azure Functions 上使用不同的路由前缀
- c语言求a1到an的和,C语言菜鸟基础教程之a++与++a
- 详解HTML5中rel属性的prefetch预加载功能使用
- ACM_一道耗时间的水题
- java在线编译器手机版_java编译器app_java编译器手机版_java编程-多特软件站安卓网...
- 分布式机器学习联邦学习论文阅读笔记(持续更新)
- UE4 LOD Screen Size
- SqlServer 如何插入图片和导出图片数据
- Android手机录制屏幕及转GIF
- 梅科尔工作室深度学习第五课-CNN
- linux内核就是外包公司老板
- 让你久等了!《开源安全运维平台OSSIM疑难解析--入门篇》9月上市
- 如何在 R 中计算调整后的 R 平方
- 520谁才是你的真爱?
- CF715B complete the gragh
- jQuery小型mp3音乐播放器插件
- 阿里云Intel Xeon Platinum 8269CY(Cascade Lake)服务器CPU性能评测
- c语言如何输入一篇英文文章,(急急,救命啊!c语言)输入一篇英语文章,求输出这篇文章的所有英语单词的个数。...