• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

ADO如何使用Update语法

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网 Update

Update表达式,用来更新表中字段的资料值,可以使用WHERE设定特定的条件运算式,符合条件运算式的记录才会被更新。

语法如下:

UPDATE 表
SET 字段新值
WHERE 条件运算式

当您要同时更新多个记录,或者在多个表中更新记录时,就需要用到UPDATE表达式。

您可以同时更新多个字段的资料值,譬如,下例将产品表中的所有记录,价格打九折,运费打七折:

UPDATE 产品

SET 价格 = 价格 * 0.9, 运费 = 运费 * 0.7

UPDATE表达式并不会产生Recordset。当您使用UPDATE表达式更新记录之后,无法复原原始值。因此,如果您想知道哪些记录将被更新,建议您先使用SELECT和相同的WHERE条件运算式来查询结果,确定是您想更新的记录后,然后再执行UPDATE表达式更新记录。

当然您可以随时将的资料作备份复制,万一您使用UPDATE表达式更新了错误的记录,您仍然可以从您的备份中救回这些记录。

让我们看一个於ASP程式码当中使用这个SQL指令的例子。

譬如ASP程式码rs5.asp如下,[Update 产品 Set 数量 = 数量 + 10] 使用Update将产品表中的所有记录的数量字段资料加10:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "Update 产品 Set 数量 = 数量 + 10"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 产品 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">价格</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">数量</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("价格")%></TD>

<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("数量")%></TD>

</TR>

<%

rs3.MoveNext

Loop

rs3.Close

conn1.Close

%>

</TABLE>

以上的 ASP程式码rs5asp,在用户端使用浏览器,浏览执行数量字段资料加10的结果,每执行一次就将产品表中的数量加10。

Update...Where

UPDATE表达式,可以使用WHERE设定特定的更新条件,符合更新条件的记录才做更新。

譬如ASP程式码rs6.asp如下,[Update 产品 Set 数量 = 数量 + 10 where 种类 = @#电脑@#] 设定特定的更新条件,[种类] 字段为 [电脑] 的记录才将数量加10:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "Update 产品 Set 数量 = 数量 + 10 where 种类 = @#电脑@#"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 产品 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">数量</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("数量")%></TD>

</TR>

<%

rs3.MoveNext

Loop

rs3.Close

conn1.Close

%>

</TABLE>

以上的 ASP程式码rs6.asp,在用户端使用浏览器,浏览执行的结果,显示数量加10的记录。

Update...Where...In

可以利用Update...Where...In找出重复的记录,譬如ASP程式码rs6.asp如下,[Update 产品 Set 价格 = 价格 - 100 where 种类 = @#电脑@# and 价格 in (Select 价格 from 产品 where 价格 > 30000)] 表示价格 > 30000而 [种类] 字段为 [电脑] 的记录才降价100:

 

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

sql = "Update 产品 Set 价格 = 价格 - 100 where 种类 = @#电脑@# and 价格 in (Select 价格 from 产品 where 价格 > 30000)"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 产品 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">价格</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("价格")%></TD>

</TR>

<%

rs3.MoveNext

Loop

rs3.Close

conn1.Close

%>

</TABLE>

以上的 ASP程式码rs6.asp,在用户端使用浏览器,浏览执行的结果,显示价格 > 30000的电脑才降价100。
转载http://asp123.on.net.cn

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网