当前位置: 首页 > 图文教程 > 网络编程 > ASP > 为输入及输出的数据库的资料做造型

ASP
用ASP发 WAP MAIL(-)
使用纯粹的asp+语言制作的栏目管理(一)
使用ASP方便的建立自己网站的每日更新
中文虚拟域名实现(1) (环境:中文NT)
中文虚拟域名实现(2) (环境:中文NT)
中文虚拟域名实现(3) (环境:中文NT)
最简单的ASP聊天室(附源码)
Win2k IIS 远程执行命令漏洞
搜索按钮(客户端表单)
转换字符串带有http://的超级链接字符串为真正的超级链接(源码)
第一个ASP组件:设置服务器日期时间组件
虹雨的功能较全的计数程序
下拉框连动的小例子(数据库版)
下拉框连动的小例子(.htm版)
纯ASP上传图像文件到数据库的最佳例子
数组数据排序的程序例子
网络精英计数器源程序
全文本检索的应用(1)
全文本检索的应用(2)
全文本检索的应用(3)

ASP 中的 为输入及输出的数据库的资料做造型


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

  在討論區上有許多網友問到按怎處理雙引號的問題, 擱有網友問到由資料庫抓出來的資料無法斷行的問題, 其實在 VBscript 有一支 Replace 函數可以來幫助咱們處理這款問題, 所以今日的文章就要來討論用 Replace 來替資料做造型

Replace 函數

一開始還是來看看 Replace 的語法

Replace(搜尋字串, 字串甲, 字串乙[, 開始位置][, 計數][, 比較方式]]]))

意思是這樣的: 由 搜尋字串 的 開始位置 找起, 找出字串甲, 並將它置換成 字串乙, 總共要做 計數 次
比較方式可以是下底的值

vbBinaryCompare - 0 (預設值), 二進位比較, 也就是大小寫區分
vbTextCompare - 1 , 文字模式比較, 不區分大小寫
VBscript 字串常數

這裡列出一些 VBscript 的字串常數供大家參考

常數 值 說明
vbCr Chr(13) Carriage Return
vbCrLf Chr(13) & Chr(10) Carriage Return and Line Feed
vbLf Chr(10) Line Feed
vbNewLine Chr(13) & Chr(10) 或 Chr(10) New Line
vbTab Chr(9) Tab (horizontal)


處理單雙引號

現在就先來看看討論區上最常問到的問題, 由於在下 SQL 指令如 Insert, Update, 你會將資料用單引號包起來, 就親像按呢

Update SomeTable Set Col001='你的資料' Where Col002='條件'

但如果你的資料中含有單(雙)引號, 那麼 SQL 就會搞不清楚這是資料的分隔符號或是資料本身, 因此我們必須要利用 Replace 函數把單引號再重複一次, 按呢 SQL 才會懂這是資料一部份, 至於雙引號部分由於使用 Replace(String, """, """") 似乎是行不通, 因此咱們使用另一個方式 - ASCII 碼, 雙引號的 ASCII 碼為 34 , 因此我們將 CHR(34) 置換為 CHR(34), 雖然沒有換不過至少騙過 SQL Server, 達成目的就好, 好! 來看看函數按怎寫

Function FormatQuote(String)
  On Error Resume Next
  String = Replace(String,"'","''")
  String = Replace(String,chr(34),chr(34))
  FormatQuote = String
End Function

輸出資料斷行

擱來來看第二個問題 - 資料由資料庫拉出後在 HTML 格式上無法斷行的問題, 這個問題是很正常的, 因為在 HTML 上的換行是 <br> 所以它不認識 Line Feed - CHR(10) 和 Carriage Return - CHR(13), 同款的利用 Replace 函數來做處理, 將其轉換成為 HTML 的 <p> 或是 <br> , 另外由於 HTML 只認一個空白字元, 所以也要對空白字元做處理, 將其轉換成 &nbsp; , 最後的考量就是 HTML 的標籤分隔符號 <   > , 如果你的資料中有可能含有這樣的格式, 你可以加上第 6, 7 行

Function FormatStr(String)
  On Error Resume Next
  String = Replace(String, CHR(13), "")
  String = Replace(String, CHR(10) & CHR(10), "<P>")
  String = Replace(String, CHR(10), "<BR>")
  String = Replace(String, CHR(32), " ")
  String = Replace(String, "<", "&lt;")
  String = Replace(String, ">", "&gt;")
  FormatStr = String
End Function

希望這篇文章對你有幫助!