shopa_editrecord.asp

来自「ASP+SQL Server动态网站开发从基础到实践教程」· ASP 代码 · 共 121 行

ASP
121
字号
<!--#include file="shop$DB.asp"-->
<!--#include file="shopa_tools.asp"-->
<%ShopCheckAdmin%>
<%
'*******************************
dim rstemp 
dim which
dim idfield
dim dbtable
sAction=Request.form("Action")
sError=""
GetInputValues
OpenDb conn,database
If sAction = "" Then
     AdminPageHeader
     GenerateForm
     AdminPageTrailer
Else
     AdminPageHeader
     UpdateRecord
     GenerateForm
     AdminPageTrailer
end if
conn.close
set conn=nothing


'************************
Sub GetInputValues
	' ID, allows editing a record
	which=request.querystring("which")
	idfield=request.querystring("idfield")
	dbtable=request.querystring("table")
	database=request.querystring("database")
end sub

Sub GenerateForm
	sqltemp="select * from " & dbtable
	sqltemp=sqltemp & " where " & idfield & "=" & which
	'Debugwrite  sqltemp
	set rstemp=conn.execute(sqltemp)
	DisplayForm
	rstemp.close
	set rstemp=nothing
end Sub


'****************************
Sub DisplayForm()
	keyvalue=rstemp(idfield).value
	howmanyfields=rstemp.fields.count -1
%>
<form name="editform" action="shopa_editrecord.asp?database=<%=database%>&table=<%=dbtable%>&idfield=<%=idfield%>&which=<%=which%>" method="POST">
<%
	Dim sRowColor
	sRowColor="#C4CEE5"
	Response.Write("<blockquote>")
	Response.Write("修改后单击提交确定<p>")
	Response.Write("<font color=red>" & sError & "</font><p>")
	Response.Write("<table cellpadding=2 cellspacing=2>")
        for i=0 to howmanyfields
               fieldname = rstemp(i).name
               fieldvalue = rstemp(i).value
               FormatRow fieldname,fieldvalue,sRowColor
         next
         Response.Write("</table><p>")
 	 Response.Write("<input type=submit name=action value=""提交"">")
         Response.Write("</form>") 
         response.write "<hr></p>"
%>
 <form method="POST" action="shopa_keydelete.asp?database=<%=database%>&table=<%=dbtable%>&idfield=<%=idfield%>&which=<%=which%>">
 <p align="center"><input type="submit" value="delete" name="Delete">
 <input type="text" name=key  value= <%=keyvalue%> size="10"><b>Key</b> <input type="text" name=table  value= <%=dbtable%> size="10"><input type="text" name=id  value= <%=idfield%> size="10"></p> 
 </form>
<%
end sub
Sub FormatRow (fieldname,fieldvalue, sRowColor)
Response.Write("<tr bgcolor=" & sRowColor &"><td>" & fieldname & ":</td><td><input size=50 name=" & fieldname & " value=" & Chr(34) & fieldvalue & Chr(34) & "></td></tr>")
end sub

'************
' 
Sub UpdateRecord
	sqltemp="select * from " & dbtable
	sqltemp= sqltemp & " where  " & idfield & "=" & which
	Set rstemp = Server.CreateObject("ADODB.Recordset")
	rstemp.open sqltemp, conn, 1, 3
	'rstemp.open sqltemp, conn, adOpenKeyset, adLockOptimistic
	GenerateUpdateSQL
	rstemp.close
	sError= sError & "<br><b>Record Updated</b>" 
end sub

' ******** general Sql
Sub GenerateUpdateSQL()
	Dim howmanyfields
	dim i
	howmanyfields=rstemp.fields.count -1 
	rstemp.update
	for i=1 to howmanyfields
	       fieldname = rstemp(i).name
	       fieldtype=rstemp(i).type
	       fieldvalue = request.form(fieldname)
	       Updatefield fieldname,fieldvalue
	next
	rstemp.update
	end sub
	Sub UpdateField (fieldname, fieldvalue)
	if fieldvalue="" then
	    exit sub
	end if
	'Debugwrite fieldname & "value=" & fieldvalue
	if ucase(fieldvalue)="NULL" then
	   rstemp(Fieldname)=NULL
	else
	'  debugwrite fieldname
	  rstemp(Fieldname)=fieldvalue
	end if
end sub

%>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?