一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP教程 - ASP編程入門(mén)進(jìn)階(二十):ADO組件之插入數(shù)據(jù)記錄

ASP編程入門(mén)進(jìn)階(二十):ADO組件之插入數(shù)據(jù)記錄

2019-10-28 12:42asp教程網(wǎng) ASP教程

簡(jiǎn)單的顯示記錄已經(jīng)掌握,現(xiàn)在需要的就是通過(guò)ASP將信息內(nèi)容插入到數(shù)據(jù)庫(kù)中。 一、擁有數(shù)據(jù)庫(kù)cnbruce.mdb 本數(shù)據(jù)庫(kù)的作用就是用來(lái)被插入數(shù)據(jù)的,可以直接采用上節(jié)中已經(jīng)建立的cnbruce.mdb文件,當(dāng)然連接打開(kāi)數(shù)據(jù)庫(kù)的文件conn.asp也

簡(jiǎn)單的顯示記錄已經(jīng)掌握,現(xiàn)在需要的就是通過(guò)ASP將信息內(nèi)容插入到數(shù)據(jù)庫(kù)中。

一、擁有數(shù)據(jù)庫(kù)cnbruce.mdb

本數(shù)據(jù)庫(kù)的作用就是用來(lái)被插入數(shù)據(jù)的,可以直接采用上節(jié)中已經(jīng)建立的cnbruce.mdb文件,當(dāng)然連接打開(kāi)數(shù)據(jù)庫(kù)的文件conn.asp也就順利引用了。

二、建立輸入插入信息的頁(yè)面平臺(tái)addit.html

本頁(yè)的主要作用是:顯示一些文本輸入框以用來(lái)提供輸入信息內(nèi)容提交數(shù)據(jù)庫(kù)。

1,addit.html

[Ctrl+A 全部選擇進(jìn)行拷貝 提示:可先修改部分代碼,再點(diǎn)擊運(yùn)行]  

本頁(yè)其實(shí)很簡(jiǎn)單,就是通過(guò)submit按鈕將表單的信息內(nèi)容提交到addit.asp頁(yè)面去處理。

三、建立處理接受數(shù)據(jù)并插入數(shù)據(jù)庫(kù)表的頁(yè)面程序addit.asp

2,addit.asp


<!--#include file="conn.asp" -->

<%
whattitle=request.form("title")
whoauthor=request.form("author")
whatcontent=request.form("content")
%>

<%
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle"
rs.Open sql,conn,3,2
%>

<%
rs.addnew
rs("cn_title")=whattitle
rs("cn_author")=whoauthor
rs("cn_content")=whatcontent
rs.update
%>
文章添加成功,<a href="showit.asp">瀏覽</a>
<%
rs.close 
Set rs = Nothing
conn.close 
set conn=Nothing
%>



恩,接著就是來(lái)具體分析一下。

1,<!--#include file="conn.asp" --> 不用說(shuō),凡是要和數(shù)據(jù)庫(kù)有聯(lián)系的都要運(yùn)用到該連接文件。

2,whattitle=request.form("title")之類 就是將上頁(yè)表單中接受過(guò)來(lái)的值賦到一變量上,方便下面程序的調(diào)用。

3,rs.Open sql,conn,3,2 注意參數(shù)和顯示數(shù)據(jù)庫(kù)時(shí)采用的參數(shù)的不同。

4,rs.addnew 很簡(jiǎn)單也很顯眼的一個(gè)聲明:新建一個(gè)數(shù)據(jù)庫(kù)記錄集行。

5,rs("cn_title")=whattitle之類 即將接受的表單值對(duì)應(yīng)到相關(guān)字段中。

6,rs.update 只是值和數(shù)據(jù)庫(kù)字段的對(duì)應(yīng),完了后還要將對(duì)應(yīng)的值上傳提交到數(shù)據(jù)庫(kù)表中去。

7,插入后可以跳轉(zhuǎn)到showit.asp查看 需要說(shuō)明,以后的ASP例題可能都是建立在前幾節(jié)內(nèi)容的基礎(chǔ)之上完成的。

8,釋放資源 是規(guī)矩,不要忘記。

那么,現(xiàn)在。插入并顯示數(shù)據(jù)庫(kù)記錄,對(duì)你來(lái)說(shuō)完全是小菜一碟了。大體框架搭建完畢,下面就是具體的細(xì)化了。

其中包括:客戶端的表單檢測(cè),防止用戶信息輸入的遺漏;當(dāng)然最好還是要加上服務(wù)器端的表單檢測(cè),由于客戶端的某些原因(比如自行設(shè)計(jì)提交非檢測(cè)的頁(yè)面)基于安全考慮,一切還是依服務(wù)器端所接受信息為準(zhǔn)。那下面就繼續(xù)細(xì)化應(yīng)用下了。

1,客戶端檢測(cè) 其實(shí)就是通過(guò)簡(jiǎn)單的腳本檢測(cè),這在初學(xué)ASP提到腳本的時(shí)候說(shuō)到,下面將再次重復(fù)。

加強(qiáng)的addit.html

[Ctrl+A 全部選擇進(jìn)行拷貝 提示:可先修改部分代碼,再點(diǎn)擊運(yùn)行]  

2,服務(wù)器端檢測(cè) 有人也許會(huì)問(wèn),既然有了客戶端的檢測(cè),那還有多個(gè)服務(wù)器端的檢測(cè)呢?原因很簡(jiǎn)單,比如仿照HTML表單提交頁(yè),自行設(shè)計(jì)一張去除了表單檢測(cè)的頁(yè)面。當(dāng)點(diǎn)擊提交,并且沒(méi)有任何信息時(shí),到達(dá)服務(wù)器端如沒(méi)有任何防御則肯定會(huì)造成數(shù)據(jù)插入的失敗。

加強(qiáng)的addit.asp


<!--#include file="conn.asp" -->

<%
whattitle=trim(request.form("title"))
whoauthor=trim(request.form("author"))
whatcontent=trim(request.form("content"))
%>

<%if whattitle="" then%>
<script language=vbs>
alert("請(qǐng)輸入文章標(biāo)題")
history.go(-1)
</script>
<%end if%>
<%if whatcontent="" then%>
<script language=vbs>
alert("請(qǐng)輸入文章標(biāo)題")
history.go(-1)
</script>
<%end if%>

<%
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from cnarticle"
rs.Open sql,conn,3,2
%>

<%
rs.addnew
rs("cn_title")=whattitle
rs("cn_author")=whoauthor
rs("cn_content")=whatcontent
rs.update
%>
文章添加成功,<a href="showit.asp">瀏覽</a>
<%
rs.close 
Set rs = Nothing
conn.close 
set conn=Nothing
%>



可以看出,就是添加了如下類似的判斷。


<%if whattitle="" then%>
<script language=vbs>
alert("請(qǐng)輸入文章標(biāo)題")
history.go(-1)
</script>
<%end if%>


很簡(jiǎn)單,如果接受過(guò)來(lái)的信息為空,則彈出警告框,并且確認(rèn)后返回到上頁(yè)即addit.html了。當(dāng)然cn_author沒(méi)有設(shè)置檢測(cè),因?yàn)楫?dāng)初設(shè)計(jì)該字段的接受值是允許為空的。

OK,總結(jié)一下,插入記錄主要就是


rs.addnew
rs("cn_title")=whattitle
...
rs.update



很簡(jiǎn)單,先聲明addnew,然后一一對(duì)應(yīng),再提交插入數(shù)據(jù)庫(kù)。

這是一種插入數(shù)據(jù)庫(kù)的方法,下面就來(lái)接觸了解一下另外一種。

需要注意,結(jié)構(gòu)化的查詢語(yǔ)言也就是SQL語(yǔ)句能夠完成一些比較苛刻的數(shù)據(jù)庫(kù)操作。當(dāng)然,對(duì)于諸如提取、插入信息之流就更不在話下了。所以下面采用的插入記錄的方法就是直接采用SQL語(yǔ)法完成。

修改了的addit.asp


<!--#include file="conn.asp" -->

<%
whattitle=request.form("title")
whoauthor=request.form("author")
whatcontent=request.form("content")
%>

<%
sql = "insert into cnarticle(cn_title,cn_author,cn_content) values(' "&whattitle&" ',' "&whoauthor&" ',' "&whatcontent&" ')"
conn.Execute(sql)
%>

文章添加成功,<a href="showit.asp">瀏覽</a>

<%
conn.close 
set conn=Nothing
%>



本程序中,你會(huì)發(fā)現(xiàn)只要一行的SQL語(yǔ)句,不需要建立Rescord記錄集行,不需要聲明addnew,不要執(zhí)行update。直接通過(guò)conn.Execute(sql)來(lái)完成。

當(dāng)然應(yīng)用此種方法,若必填字段接受值為空時(shí),同樣能夠插入記錄。這和采用第一種會(huì)報(bào)


Microsoft JET Database Engine 錯(cuò)誤 '80040e21' 

字段 'xxx.xxx' 不能是零長(zhǎng)度的字符串。 


具有很大的容錯(cuò)性。

是程序的可讀性還是方法的簡(jiǎn)便高效率就任君選擇了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好吊色青青青国产综合在线观看 | 操操综合网 | 婷婷精品进入 | 奇米影视一区 | 国产欧美久久一区二区 | 4455四色永久免费 | 精品久久久噜噜噜久久7 | 久久中文字幕亚洲 | 99久热只有精品视频免费看 | 色老板免费 | 欧美不卡一区二区三区免 | 久久99精品国产免费观看 | 成人网欧美亚洲影视图片 | 3黑人巨大vs北岛玲 3d肉浦团在线观看 3d动漫免费 | 丰腴尤物贵妇浪荡小说 | 欧美高清milf在线播放 | 日本人成在线视频免费播放 | 五月激激激综合网色播免费 | 亚洲天堂网站在线 | a级影视| 美女脱了内裤打开腿让你桶爽 | 亚洲网红精品大秀在线观看 | 精品丰满人妻无套内射 | 日本丰满大乳乳奶 | 国产91精品露脸国语对白 | 变态 调教 视频 国产九色 | 91精品乱码一区二区三区 | 国产精品资源站 | 91久久青青草原线免费 | 亚洲精品丝袜在线一区波多野结衣 | 四虎精品在线视频 | 桥本有菜ssni-677在线观看 | 桃色导航 | 99热精品在线观看 | 色老板在线 | 911色_911色sss在线观看 | 欧美成黑人性猛交xxoo | 成人另类视频 | 色婷婷久久综合中文久久一本` | 久久免费看少妇高潮A片2012 | 91在线免费播放 |