仓酷云

标题: ASP网页编程之怎样写一段高效,平安的sql查询代码 [打印本页]

作者: 仓酷云    时间: 2015-1-16 22:34
标题: ASP网页编程之怎样写一段高效,平安的sql查询代码
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!看一看这段代码,让我们来看看次要存在的成绩

//设置SQL语句
insertstr="insertintouserinfo(name,password,email,phone,mobile,post,address)VALUES(";
insertstr+=this._name.Trim()
;+",";
insertstr+=this._password.Trim()+",";
insertstr+=this._email.Trim()+",";
insertstr+=this._phone.Trim()+",";
insertstr+=this._mobile.Trim()+",";
insertstr+=this._post.Trim()+",";
insertstr+=this._address.Trim()+")";


1、效力成绩
起首看看上边这段代码,效力太低了,这么多的字符串联接自己效力就够低的了,再加上这么些trim(),完整没有需要。

2、准确性成绩
这段代码太懦弱,一个单引号就能够使全部程序溃散。

3、平安性
同上,使用单引号我能够做良多事,好比运转个xp_cmd命令,那你就惨了,呵呵。

那末,如何来写呢,下面这段代码能够改成如许:
stringstrSql="insertintosometable(c1,c2,c3,...)values(@c1,@c2,@c3,...)"
SqlCommandmyCommand=newSqlCommand(strSql,myConn)
try
{
myCommand.Parameters.Add(newSqlParameters("@c1",SqlDataType.VarChar,20)
myCommand.Parameters["@c1"].Value=this._Name;
....
//有几个加几个
....
}
catch(...)
...

如许呢,既能够制止低效力的字符串联接,又能够使用sqlcommand参数无效性检测来制止不法字符的呈现,而且因为这类parameter体例是预编译的,效力更高。

一举数得,何乐而不为呢。
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。
作者: 小妖女    时间: 2015-1-19 17:20
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 蒙在股里    时间: 2015-1-25 20:16
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
作者: 飘灵儿    时间: 2015-2-3 20:48
掌握asp的特性而且一定要知道为什么。
作者: 透明    时间: 2015-2-9 05:04
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: 再现理想    时间: 2015-2-27 00:04
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 因胸联盟    时间: 2015-3-8 18:38
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
作者: 山那边是海    时间: 2015-3-16 10:59
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 第二个灵魂    时间: 2015-3-22 22:28
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2