asp更新数据库
‘壹’ asp 中用update更新数据库
name不是关键字吗? 能取得session值吗?
‘贰’ ASP 更新数据库字段内容
插入到你现有的ASP程序中
如何保存更新内容呢?
数据库结构:(一共三个字段)QuoteID(Long ),Quote(String ),Author(String)
下面一个技巧是如何让更新显示在任意一个页面上呢?
我们只要把更新内容和作者当返回值送给调用的页面即可。代码如下,其中logic是一个随机数,表示随机从数据库中显示哪个记录:
<%
Sub GetQuote(byVal strQuote, byval strAuthor)
Dim intMaxID&
Dim intRecordID
dim strsql&
Dim oConn&
Dim oRS
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Database=mydb;DSN=Quotes;UID=sa;Password=;"
strSQL = "SELECT MaxID=max(QuoteId) from Quotes"
Set oRS = oConn.Execute(strSQL)
If oRS.EOF Then
strQuote = "站长太懒了,今天没有更新内容."
strAuthor = "呵呵"
Exit Sub
Else
intMaxID = oRS("MaxID")
End If
Randomize
intRecordID= Int(Rnd * intMaxID) + 1
strSQL = "Select * from quotes where QuoteID=" & intRecordID & ";"
Set oRS = oConn.Execute(strSQL)
If oRS.EOF Then
strQuote = "站长太懒了,今天没有更新内容."
strAuthor = "呵呵"
Exit Sub
Else
oRS.MoveFirst
strQuote = oRS("Quote")
strAuthor = oRS("Author")
End If
oRS.Close
oConn.Close
Set oRS = Nothing
set oConn = Nothing
End Sub
%>
其实在程序中如果使用一个嵌套的SQL能够提高性能,例如这样
Select * from Quotes where QuoteID = (Select int ( RND * Max(QuoteID) ) from Quotes );
可是问题是有些数据库的随机数函数是RAND而不是RND,如果要是你自己用的话,那当然可以使用这句话代替我上面介绍的方法,可别忘了,要是别人的数据库不支持RAND怎么办,呵呵。
现在我们将上面的代码保存到一个名叫quotes.inc的文件中来,下面就举一个如何调用它的例子把:
<HTML>
<HEAD>
<TITLE>例子</TITLE>
<!--#include virtual = "quotes.inc" -->
</HEAD>
<BODY>
<BR><BR>
<%
Dim strQuote
Dim strAuthor
GetQuote(strQuote, strAuthor)
%>
<TABLE BORDER=0 CELLPADDING=6 CELLSPACING=5 BGCOLOR="#000000" WIDTH=500>
<TR BGCOLOR="#CCCCCC">
<TD ALIGN=CENTER>
<B>"<% =strQuote %>" <BR>--<I><% =strAuthor %></I></B>
</TD>
</TR>
</TABLE>
<BR><BR>
</BODY>
</HTML>
其实你可以再加强点它的功能:
1.可以在子过程中给返回的字符串带上格式,这样显示会更加漂亮
2。将这个代码做成一个组件来调用
3。使用一个文本文件来代替数据库
4。将SQL放到存储过程中去
‘叁’ ASP数据库 更新 UPDATE操作语法
倒,,,刚仔细一看,也是你的贴。。。
刚回答了一个网友的同样的关于update的问题,转过来一下:
asp更新数据库时,可以用以下方式(我常用的,还有其他的方式):
一、用recordset记录集的方式。
rs.open "select * from tablename where id="&request("id"),conn,1,3
rs("a")=request("a")
rs("b")=request("b")
rs.update
rs.close
用这种方式进行数据更新,有个好处就是当要更新的数据量非常大时,也可以很顺利的更新成功(比如备注型字段的数据,中间还包含了换行等等的)
二、用sql的update语句:
conn.execute("update tablename set a='"&request("a")&"',b='"&request("b")&"',c="&request("c")&" where id="&request("id"))
用上面的方法更新数据时,如果是SQL数据库,而你要更新的数据内容里含有比如单引号['],双横线[--]之类的特殊字符,就会更新不成功的,因为这时候SQL会认为是非法字符,而把你的单引号给去掉的。而且当如果更新的是备注型字段,里面包含了换行等字符,也会显得很乱。但用这种方法更新,速度比用recordset的速度要快很多,因为毕竟这是直接更新数据库,而recordset是对update的封装形式。
其实更新数据库,非常简单,如果你对字符串连接的单引号,双引号,&号的使用觉得很混乱,那就用recordset的方式进行,这样会很清晰,一点都不会有混乱的感觉的。而如果你能熟练的使用单引号,双引号,&号,那么你用update语句更新数据库,就大在的提交了速度(当然如果数据量小,我建议用recordset记录集的方式,因为这种方式一个字段对应一个值,一行一个,这样下来,很清晰,还可以对每行做个备注,以后改起来也方便。而用update的方式,所有的值和记录全部连在一块,老长的一串,看得人头都发麻,而且update还不能添加特殊字符,比如上面说的单引号等。。。)
刚回答的这个问题地址:http://..com/question/18663956.html
‘肆’ ASP循环问题,并更新数据到数据库
1。首先在 FOR 前要定义 I 的值,
2。then 中 和 else 中没有循环得出不同的数据也是不正常
就算循环成功,最后rss("mb_b") rss("mb_bb") rss("mb_a") rss("mb_aa") 这些值都是统一的,没有意义
3。ASP不能用 + 连接字符串
4。for i=i to 1 i = rss("mb_id") FOR是每循环一次加一,rss("mb_id")数据库中绝对不会出现ID为0的
for i = 1 to 100 修改数据库1-100条记录 循环是不需要重新给 i 赋值
set rss=server.createobject("adodb.recordset")
sql="select * from 数据训 where mb_id="&i
rss.open sql,conn,1,1
if rss.eof and rss.bof then 判断有 没有这个ID
else
if rss("mb_right")= i then 你的条件成立 修改B模板
rss("mb_b")=mbb+dingdan
rss("mb_bb")=mbbb+dingdan
else 其它条件时修改A模板
rss("mb_a")=mba+dingdan
rss("mb_aa")=mbaa+dingdan
end if
next
end if
rss.close
‘伍’ 关于ASP更新数据库的问题
从URL参数可以知道yw3up_k2t取得的值是""(字符串)。但是数据库里的[科2日期]应该是日期型的吧。如果要把空数据写入数据库,那么应该用null而不是"",其他项也类似。
具体代码,你可以自己想想,不难!~
希望上面的答案能给你帮助,谢谢
‘陆’ asp数据库更新
你是要在对话框里输出一个初值吧
value=<%=rs("d_class")%>> 改为 value="<%=rs("d_class")%>"
外面差一对双引号,多了一个>
‘柒’ asp如何批量更新数据库数据
第一个a.asp页面代码:
<script language=javascript>
function unselectall()
{
if(document.th_edit.chkAll.checked){
document.th_edit.chkAll.checked = document.th_edit.chkAll.checked&0;
}
}
function CheckAll(form)
{
for (var i=0;i<form.elements.length;i++)
{
var e = form.elements[i];
if (e.Name != "chkAll")
e.checked = form.chkAll.checked;
}
}
function ConfirmDel()
{
if(confirm("确定要修改吗?"))
return true;
else
return false;
}
</script>
</head>
<body>
<%
sub_number=request("sub_number")
sub_stores=request("sub_stores")
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from venshop_basket where sub_number='"+sub_number+"'"
rs.open sql,conn,1,3
%>
<table>
<tr>
<td>商品名称</td>
<td>订购数量</td>
<td>退货数量</td>
<td>配送门店</td>
<td>下单时间</td>
<td>退货原因</td>
</tr>
<form action="th_update.asp" name="th_edit" method="post" onSubmit="return ConfirmDel();"><%
do while not rs.eof
%>
<tr>
<td><input name="delid" type="checkbox" onClick="unselectall()" id="delid" value='<%=cstr(rs("basket_id"))%>'><%=rs("hw_name")%>
</td>
<td><%=rs("basket_count")%></td>
<td><input type="text" name="thcount" value='<%=rs("basket_count")%>'></td>
<td><%=sub_stores%></td>
<td><%=rs("basket_date")%></td>
<td><input type="text" name="yuanyin"></td>
</tr>
<%
rs.movenext
loop
%>
<tr>
<td><input name="chkAll" type="checkbox" id="chkAll" onclick="CheckAll(this.form)" value="checkbox" />全选</td>
<td><input type="submit" name="tuihuo" value="退货"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</form>
</table>
<%
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
</body>
</html>
th_update.asp页面代码:
<!--#include file="conn.asp"-->
<!--#include file="ad_chk.asp"-->
<%
If Request("delid") & ""="" then
response.write "<script>alert('请选择要修改的信息!');history.go(-1);</script>"
else
arrdel=Request("delid")
basket_count=Request("basket_count")
thcount=Request("thcount")
for i=1 to arrdel.count
sql="update venshop_basket set basket_count='" & thcount(i) & "' where basket_id='" & arrdel(i) & "'"
conn.Execute sql
next
set conn=nothing
response.write "<script language=JavaScript>alert('修改成功!');location.href=ad_sub.asp;<script>"
response.Redirect("ad_sub.asp")
end if
%>
‘捌’ asp定时更新数据库
可以尝试用windows的计划任务完成
‘玖’ asp如何更新一条数据库记录使用update
<%
'连接数据库 db.mdb是您的数据库文件
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
conn.open connstr
'执行语句
conn.execute "update [表名] set [列名]=值 where [id]=编号"
%>
如下面一个数据库
数据库文件名 123.mdb
表名 userinfo
数据/列名 id username password
0 lorabit PiG!!!
1 paint DoG!!!
当paint用户需要更新其密码为PiG!!!时,我们就需要这样一段ASP
<%
'连接数据库 db.mdb是您的数据库文件
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("123.mdb")
conn.open connstr
'执行语句
conn.execute "update [userinfo] set [password]='PiG!!!' where [id]=1"
%>
你也可以使用下面这一段,两段的差别在于第一段是靠用户ID来确定行,而第二段是搜索用户名。
<%
'连接数据库 db.mdb是您的数据库文件
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("123.mdb")
conn.open connstr
'执行语句
conn.execute "update [userinfo] set [password]='PiG!!!' where [username]='paint'"
%>
如果还有不懂 QQ233349789