欢迎光临
我们一直在努力

ASP技巧TOP 10(二)

建站超值云服务器,限时71元/月

3、数据库搜索技巧

1082

   在数据库搜索中,如果我们只使用等于符号搜索“pro”是无法提取出那些能够匹配“asp pro”的记录的。下面我们要介绍的是如何使用sql的like操作符实现部分文本搜索。

   问:

   从数据库提取记录集时,是否有可能提取那些包含比我所指定的文本更多内容的记录,且不对搜索文本的出现位置有具体要求?

   例如:   

strname = direct

rsshops = server.createobject("adodb.recordset")

strsql = "select * from shops where name =

" & strname & "

   是否可以提取出商店名字中包含“direct”单词的记录集?

   答:

   不要在sql命令中使用等于(“=”)操作符,而是改用like操作符。

   要提取出那些名字中包含“direct”的记录,可以使用下面这个查询命令:   

select * from shops where name like %direct%

   请按照这里的代码修改实际使用的查询。

4、数值显示格式化

对于vb程序员来说,asp中一个非常令人失望的改动是vbscript中不再有format函数。那么,如何格式化数字使得它不再以默认的格式显示?比如,将数字显示为百分数、货币金额或者加上小数占位符。下面的代码帮你解决这个问题,告诉你如何通过用来取代vb format的formatxxxx函数来格式化输出。

   问:

   在我开发的应用中,某个页面要显示一些####.####格式的数字。在asp中如何才能实现?

   答:

   使用vbscript的formatnumber函数,该函数能够返回格式化的数字表达式。语法如下:

formatnumber(expression [,numdigitsafterdecimal ][,includeleadingdigit

][,useparensfornegativenumbers ][,groupdigits]]]])

   例如,formatnumber("123.45",4)将返回123.4500。

   请参考http://msdn.microsoft.com/scripting的vbscript帮助获得更多信息。

5、sql命令中的引号处理

虽然用vbscript代码构造的sql命令本身没有问题,但是由于用户输入的表单数据中包含了单引号或双引号,本来合法的sql语句不再合法。相信有不少读者已经遇到过这个问题。下面我们要介绍的就是如何解决这类问题。

   问:

   我有一个关于sql server更新、插入记录命令的问题。我想用带有一个或多个引号的字符串来更新数据库,sql将字符串中的引号看成语法符号并提示错误。我应该怎么办呢?是否有其它的字符串分隔符?我已经试过双引号、[]、{}等,但都没有用。

   答:

   在执行sql命令之前,应当把所有字符数据中的单引号用两个单引号替代。

   也就是说,如果sql命令中出现了带引号的字符串(比如用户的名字为obrian),就会出现问题:   

update table set namefield = obrian

   要解决问题,必须把字符串中的单引号转换成两个单引号:   

update table set namefield = obrian

   可以利用replace函数实现这种转换:   

strname = replace(strname, "" , "" )

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP技巧TOP 10(二)
分享到: 更多 (0)