ADO如何使用UPDATE语法呢(BIG5)
类别: ASP教程
Update
Update??述式,用?砀?新儋料表中?谖坏馁Y料值,可以使用WHERE韵定特定的?l件咚闶剑?符合?l件咚闶降挠???才??被更新。
遮法如下:
UPDATE 儋料表
SET ?谖恍轮导br> WHERE ?l件咚闶郊br>
??您要同?r更新多??????,或者在多??儋料表中更新?????r,就需要用到UPDATE??述式。
您可以同?r??更多???谖坏馁Y料值,譬如,下例???a品儋料表中的所有????,?r格打九折,哔M打七折:
UPDATE ?a品
SET ?r格 = ?r格 * 0.9, 哔M = 哔M * 0.7
UPDATE??述式?K不???a生Recordset。??您使用UPDATE??述式更新????之後,?o法?驮?原始值。因此,如果您想知道哪些?????⒈桓?新,建阻您先使用SELECT和相同的WHERE?l件咚闶??聿樵?劫果,催定是您想更新的????後,然後再?绦姓PDATE??述式更新????。
??然您可以胗?r?⒌馁Y料作?浞菅}氧,孺一您使用UPDATE??述式更新了邋锗的????,您仍然可以?哪?的?浞葜芯然剡@些????。
??我??看一??於ASP程式瘁??中使用呃??SQL指令的例子。
譬如ASP程式瘁rs5.asp如下,[Update ?a品 Set ?盗? = ?盗? + 10] 使用Update???a品儋料表中的所有????的?盗??谖毁Y料加10:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
\'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
sql = "Update ?a品 Set ?盗? = ?盗? + 10"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from ?a品 order by 代??"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代??</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名费</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?r格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?盗喀lt;/FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代??")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名费")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?r格")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?盗喀quot;)%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式瘁rs5asp,於用?舳耸褂??g盂器,?g盂?绦??盗??谖毁Y料加10的劫果,每?绦幸淮尉????a品儋料表中的?盗考颖0。
Update...Where
UPDATE??述式,可以使用WHERE韵定特定的??更?l件,符合??更?l件的????才做??更。
譬如ASP程式瘁rs6.asp如下,[Update ?a品 Set ?盗? = ?盗? + 10 where 肺?? = \'??呢\'] 韵定特定的??更?l件,[肺??] ?谖??? [??呢] 的????才???盗考颖0:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
\'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
sql = "Update ?a品 Set ?盗? = ?盗? + 10 where 肺?? = \'??呢\'"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from ?a品 order by 肺?? DESC"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代??</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名费</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?盗喀lt;/FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代??")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名费")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?盗喀quot;)%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式瘁rs6.asp,於用?舳耸褂??g盂器,?g盂?绦械慕Y果,锢示?盗考颖0的????。
Update...Where...In
可以利用Update...Where...In找出重覆的????,譬如ASP程式瘁rs6.asp如下,[Update ?a品 Set ?r格 = ?r格 - 100 where 肺?? = \'??呢\' and ?r格 in (Select ?r格 from ?a品 where ?r格 > 30000)] 表示?r格 > 30000而 [肺??] ?谖??? [??呢] 的????才降?r100:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
\'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
sql = "Update ?a品 Set ?r格 = ?r格 - 100 where 肺?? = \'??呢\' and ?r格 in (Select ?r格 from ?a品 where ?r格 > 30000)"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from ?a品 order by 肺?? DESC"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代??</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名费</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?r格</FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代??")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名费")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?r格")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式瘁rs6.asp,於用?舳耸褂??g盂器,?g盂?绦械慕Y果,锢示?r格 > 30000的??呢才降?r100。
Update??述式,用?砀?新儋料表中?谖坏馁Y料值,可以使用WHERE韵定特定的?l件咚闶剑?符合?l件咚闶降挠???才??被更新。
遮法如下:
UPDATE 儋料表
SET ?谖恍轮导br> WHERE ?l件咚闶郊br>
??您要同?r更新多??????,或者在多??儋料表中更新?????r,就需要用到UPDATE??述式。
您可以同?r??更多???谖坏馁Y料值,譬如,下例???a品儋料表中的所有????,?r格打九折,哔M打七折:
UPDATE ?a品
SET ?r格 = ?r格 * 0.9, 哔M = 哔M * 0.7
UPDATE??述式?K不???a生Recordset。??您使用UPDATE??述式更新????之後,?o法?驮?原始值。因此,如果您想知道哪些?????⒈桓?新,建阻您先使用SELECT和相同的WHERE?l件咚闶??聿樵?劫果,催定是您想更新的????後,然後再?绦姓PDATE??述式更新????。
??然您可以胗?r?⒌馁Y料作?浞菅}氧,孺一您使用UPDATE??述式更新了邋锗的????,您仍然可以?哪?的?浞葜芯然剡@些????。
??我??看一??於ASP程式瘁??中使用呃??SQL指令的例子。
譬如ASP程式瘁rs5.asp如下,[Update ?a品 Set ?盗? = ?盗? + 10] 使用Update???a品儋料表中的所有????的?盗??谖毁Y料加10:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
\'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
sql = "Update ?a品 Set ?盗? = ?盗? + 10"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from ?a品 order by 代??"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代??</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名费</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?r格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?盗喀lt;/FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代??")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名费")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?r格")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?盗喀quot;)%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式瘁rs5asp,於用?舳耸褂??g盂器,?g盂?绦??盗??谖毁Y料加10的劫果,每?绦幸淮尉????a品儋料表中的?盗考颖0。
Update...Where
UPDATE??述式,可以使用WHERE韵定特定的??更?l件,符合??更?l件的????才做??更。
譬如ASP程式瘁rs6.asp如下,[Update ?a品 Set ?盗? = ?盗? + 10 where 肺?? = \'??呢\'] 韵定特定的??更?l件,[肺??] ?谖??? [??呢] 的????才???盗考颖0:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
\'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
sql = "Update ?a品 Set ?盗? = ?盗? + 10 where 肺?? = \'??呢\'"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from ?a品 order by 肺?? DESC"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代??</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名费</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?盗喀lt;/FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代??")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名费")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?盗喀quot;)%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式瘁rs6.asp,於用?舳耸褂??g盂器,?g盂?绦械慕Y果,锢示?盗考颖0的????。
Update...Where...In
可以利用Update...Where...In找出重覆的????,譬如ASP程式瘁rs6.asp如下,[Update ?a品 Set ?r格 = ?r格 - 100 where 肺?? = \'??呢\' and ?r格 in (Select ?r格 from ?a品 where ?r格 > 30000)] 表示?r格 > 30000而 [肺??] ?谖??? [??呢] 的????才降?r100:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
\'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"
sql = "Update ?a品 Set ?r格 = ?r格 - 100 where 肺?? = \'??呢\' and ?r格 in (Select ?r格 from ?a品 where ?r格 > 30000)"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from ?a品 order by 肺?? DESC"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代??</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名费</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">?r格</FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代??")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名费")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("?r格")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
conn1.Close
%>
</TABLE>
以上的 ASP程式瘁rs6.asp,於用?舳耸褂??g盂器,?g盂?绦械慕Y果,锢示?r格 > 30000的??呢才降?r100。
- 上一篇: ASP中COOKIE使用指南
- 下一篇: ADO如何取得资料表栏位资讯(BIG5)
-= 资 源 教 程 =-
文 章 搜 索