欢迎光临
我们一直在努力

ADO如何使用Update语法

建站超值云服务器,限时71元/月

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ADO如何使用Update语法
分享到: 更多 (0)

相关推荐

  • 暂无文章