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

ASP
对连串英文自动换行的解决方法 IE5.5
怎样写你自己的EMAIL组件(原理)
ASP中有关timeout超时的体会
用ASP实现从SQL Server导出数据到Access
ASP向NT域中加一个用户
ASP乱码的解决方法
关于 aspsmartupload 注册问题
利用XML不离开页面刷新数据
IIS 处理 SEARCH 请求漏洞
不用组件实现上载功能(1)
不用组件实现上载功能(2)
在网页中实现OICQ里的头像选择的下拉框
仅用xsl和asp实现分页功能
如何使用context()方法将数据置入表格(XML)
利用ASP从远程服务器上接收XML数据
将数据库里面的内容生成EXCEL
怎样在ASP里面创建统计图表
加密你的Access数据库
利用global.asp定时执行ASP
加密QueryString数据

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 29 ::
收藏到网摘: 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

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