帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
ADO如何使用Update语法
作者:佚名 发布时间:2005-04-02 来源:不详
 

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。

 
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·ADO如何取得数据库中表的字段信息  (2005-03-12)
 ·ADO如何取得数据库中表的字段信息  (2005-03-12)
 ·ADO如何新增修改删除数据库的记录  (2005-03-12)
 ·ADO如何锁定RecordSet的记录呢?  (2005-03-12)
 ·ADO如何使用Insert语法  (2005-03-12)
 ·ADO如何使用Delete语法  (2005-03-12)
 ·ADO如何使用Update语法   (2005-03-12)
 ·ADO如何建立修改删除表   (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统