表示层用到了sql关键字,是不是违背了分层原则? 用存储过程分页,条件用的是@where,在界面上时,出现了 " and 字段名=",出现了 and,between,like这样的sql关键字,这样是不是违背了分层原则,这种情况该怎么写好呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这种情况可以使用一个专门的类来组织SQL语句 也并不算违背。只是不建议。就像linq本身就封装的不错,但他同时也保留了直接使用sql语句的查询gridview,treeview一类的控件更是如此,他提供了一些常规的相对不变的一些东西,但是如果你要变化他们,他也同时提供给你变化的机会。对于n层来说,你可以保留这个,但是不建议调用代码的程序员这么做,除非他实在是特殊需要(net本身也是这么处理的,他保留指针,但通常不用指针,除非你有特别的要求需要你才会声明unsafe去使用他们) 任何一套成熟的架构,必然会有一个SQL语句装配器类似的东西.一来是可以适应数据库迁移,二来也会进行一些加密处理,进而防止sql注入.所以,不论是从可移植性的角度还是安全性的角度,直接拼sql都是不可取的,而与你说的"分层"关系却不大 其实应该将问题的重点倒过来看,既然你具体地发现那些“语法”限制了你使用后台数据系统,“管它什么三层不三层的学究气”呢?你就可以慢慢找出这个具体问题的解决之道。具体问题才可以揭穿许多东西,你自己就可以回答“如果三层是那个样子的那么我没有必要抄袭它”。在研究过ORM(过去)或者LINQ(现在)之后,相信许多人对三层的解释和实现更为实际。 技术文档如何编写 ASP.NET系统中执行SQL语句时莫名其妙的删除了表中其他数据 大家调用数据的时候是用DataSet还是用数据绑定控件? castle问题 Application会多次启动?Server.MapPath不再可靠? 使用FreeTextBox 1.6.3 中文版出错 为什么在保存缩率图的时候经常会出现这种错误? 把excel导入到GridView不能分页吗? htmlTable中如何删除一个rows中指定的几行啊 救命!ADODB.Connection 错误 '800a0e7a' 浏览器关闭提示用户 ASP.NET的处理字符串
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货