亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3124 | 回復: 1
打印 上一主題 下一主題

關于SQL語句中的引號問題(VB&VBScript) [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-01-16 16:23 |只看該作者 |倒序瀏覽
最近在寫 SQL語句時因為引號引起的問題,所以查了點資料..綜合了一下下~--~
* 舉例時以 VB6.0為依據(jù);
* VB與VBScript不同的地方將分別說明;
* 數(shù)據(jù)庫連結用 ADO。

要點:
在 VB&VBScript中,標記字符串變量內容用雙引號,用兩個連續(xù)的雙引號表示字符串中
的雙引號;
在 SQL語法中,標記字符串變量內容用單引號,用兩個連續(xù)的單引號表示字符串中的單
引號。

在 VB&VBScript中訪問數(shù)據(jù)庫的時候最常用的是以下兩種語句:
1、選擇查詢(select),返回結果集;
2、動作查詢(update、insert、delete等),無結果集。

無論哪一種語句,經常需要根據(jù)用戶的輸入來構造符合 SQL語法的字符串,提交給連結
對象或結果集對象來執(zhí)行(open或 execute方法),在 VB&VBScript中,標記字符串變量內
容用雙引號,如
strSql="select * from UserList"
在 SQL語法中,標記字符串變量內容用單引號,如:
select * from UserList where UserName='MouseFly'

如果程序的窗口(瀏覽器的頁面)上有兩個文本框用于讓用戶輸入登記注冊的用戶信息
或者是查詢條件,假設用戶輸入了“MouseFly”、“1234”,需要登記到數(shù)據(jù)庫的一個用戶
注冊表 UserList中,則SQL字符串應如下組織:
strSql="insert into UserList (UserName,Password) values (" & _
"'" & me.txtUserName.text & "'," & _
"'" & me.txtPassword.text & "')"
生成的結果為:
insert into UserList (UserName,Password) values ('MouseFly','1234')
但是如果用戶輸入中包含了單引號,如“12'3”,按照上面的組織方法則為:
insert into UserList (UserName,Password) values ('MouseFly','12'3')
這時再執(zhí)行的時候,會提示 SQL語法錯誤,原因就在于“12'3”中的單引號,由于在 SQL語
法中,標記字符串變量內容用單引號,因此“'12'3'”無法被正確識別,所以在組織字符串
的時候要考慮將用戶輸入的單引號替換成兩個連續(xù)的單引號,此時要用到Replace函數(shù):
strSql="insert into UserList (UserName,Password) values (" & _
"'" & replace(me.txtUserName.text,"'","''" & "'," & _
"'" & replace(me.txtPassword.text,"'","''" & "')"
結果為:
insert into UserList (UserName,Password) values ('MouseFly','12''3')
如果使用的是VBScript則me.txtUserName.text和me.txtPassword.text要換成相應的瀏覽器
提交的內容,如request.form("UserName"和request.form("assword"。
如果賦值的字段類型是數(shù)字型的,則要去掉字符串兩端的單引號,假設Password字段是
數(shù)值型,并且用戶輸入的是“1234”,則(此處略去數(shù)字輸入校驗):
strSql="insert into UserList (UserName,Password) values (" & _
"'" & me.txtUserName.text & "'," & _
me.txtPassword.text & ""
生成的結果為:
insert into UserList (UserName,Password) values ('MouseFly',1234)

如果字段類型是日期型,在 ADO中和處理字符串差不多,只不過要注意日期型字段的格
式,最好在組織 SQL字符串的時候對日期進行格式化保證年份是4位,如:
strSql="insert into UserList (UserName,Password,BirthDay) values (" & _
"'" & me.txtUserName.text & "'," & _
me.txtPassword.text & "," & _
"'" & format(me.txtBirth.text,"yyyy-mm-dd" & "')"
生成的結果為:
insert into UserList (UserName,Password,BirthDay) values
('MouseFly',1234,'1975-01-15')
如果使用的是VBScript,對日期進行格式化使用FormatDatetime函數(shù)。

論壇徽章:
0
2 [報告]
發(fā)表于 2003-01-17 21:49 |只看該作者

關于SQL語句中的引號問題(VB&VBScript)

明白
但是如果sql 語句中有'號呢
偶不想用vb時
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP