读书人

关于asp以及数据库的应用的有关问题

发布时间: 2012-03-25 20:55:16 作者: rapoo

求助:关于asp以及数据库的应用的问题,大家帮帮忙啊~~!在线等
想要把如下代码中的2个函数(Sub WriteSub()和sub addstaf())整合一下,其中第一个函数是点击增加按钮可以将用户名存入数据表DocManageTypeTable中,第2个函数是点击增加按钮可以将用户的一系列基本信息存入数据表userinf中,自己整合了好久总是只能实现一个效果,麻烦各位大虾们帮忙看看啊,跪求解答~!
<%
Public Conn,username,ID,ReturnValue
on error resume next
Sub ErrorSub()
Conn.Close
Set Conn=Nothing
Response.Write("</body></html>")
End Sub
function strlength(inputstr)
dim length,i
length=0
for i=1 to len(inputstr)
if asc(mid(inputstr,i,1))<0 then
length=length+2
else
length=length+1
end if
next
strlength=length
end function
Sub WriteSub(SqlStr,SqlStr1)
ReturnValue=True
If strlength(username)>50 Or username="" Then
Call DispErrorInfo1("对不起,用户名太长,不能超过25汉字且不能为空!")
Call ErrorSub
ReturnValue=False
Else
Set Rs=Server.CreateObject("Adodb.RecordSet")
Rs.Open SqlStr,Conn,1
If Rs.Eof And Rs.Bof Then
Conn.Execute(SqlStr1)
If Err.Number<>0 Then
Conn.RollbackTrans
Call DispErrorInfo1("对不起,增加用户名太长!错误原因:" & Err.Description)
Rs.Close
Set Rs=Nothing
Call ErrorSub
ReturnValue=False
Else
Conn.CommitTrans
End If
Else
Rs.Close
Set Rs=Nothing
Call ErrorSub
Call DispErrorInfo1("对不起,该用户已经存在,请重新输入!")
ReturnValue=False
response.end
End If
End If
End Sub
'On Error Resume Next
Set conn=Server.CreateObject("ADODB.Connection")
conn.open "dbq="&server.mappath("./Doc_Storeroom/DocData")&";driver={microsoft access driver (*.mdb)};"
Conn.BeginTrans
username=Trim(Request.Form("username"))
ID=CutRequestString(Request.Form("IDValue"))
If Request.Form("submit")=" 增加 " Then
Call WriteSub("Select * From DocManageTypeTable Where DocType='" & username & "'","Insert Into DocManageTypeTable (DocType) Values('" & username & "')")
If Not ReturnValue Then
Response.End
End If
Conn.CommitTrans
End If
%>
<%
sub addstaf(href)
oabusyuserdept=request.cookies("oabusyuserdept")
if request("submit")="增加" then
errorinfo=""
username=request("username")
if strlength(username)>10 then
errorinfo=errorinfo&"用户名太长,不能超过5个汉字或10个英文字符!<br>"
end if
password=request("password")
if strlength(password)>20 then
errorinfo=errorinfo&"密码太长,不能超过20个字符!<br>"
end if
name=request("name")
if strlength(name)>10 then
errorinfo=errorinfo&"姓名太长,不能超过5个汉字或10个英文字符!<br>"
end if
userdept=request("userdept")
if strlength(userdept)>10 then
errorinfo=errorinfo&"联系方式太长,不能超过5个汉字或10个英文字符!<br>"
end if
userlevel=request("userlevel")
if strlength(userlevel)>10 then
errorinfo=errorinfo&"工作单位太长,不能超过5个汉字或10个英文字符!<br>"
end if
if errorinfo="" then
'判断是否有与申请的用户名相同的
on error resume next
set conn=opendb("oabusy","conn","accessdsn")
conn.begintrans
set rs2=server.createobject("adodb.recordset")
password=md5(password)
sql2="select * from userinf where username=" & sqlstr2(username) & " or password=" & sqlstr2(password)
rs2.open sql2,conn,1
if not rs2.eof and not rs2.bof then
%>
<center><font color="red" size="+1">用户名为<%=keepformat(username)%>的用户已经存在,请选择其他用户名</font><br><br>


<input type="button" onclick="history.go( -1 );return true;" value="返回"></center>
<%
else
password=md5(password)
sql2 = "Insert Into userinf (username,password,name,userdept,userlevel) Values( "
sql2 = sql2 & SqlStr2(username) & ", "
sql2 = sql2 & SqlStr2(password) & ", "
sql2 = sql2 & SqlStr2(name) & ", "
sql2 = sql2 & SqlStr2(userdept) & ", "
sql2 = sql2 & SqlStr2(userlevel) & ")"
conn.Execute(sql2)
set rs1=server.createobject("adodb.recordset")
sql2="SELECT @@IDENTITY AS IdSum from userinf"
rs1.open sql2,conn,1
IdSum=rs1("IdSum")
set rs1=nothing
if err.number<>0 then
conn.rollbacktrans
call DispErrorInfo1("对不起,测试版本不能添加用户!")
conn.close
set conn=nothing
call bgback()
response.end
else
conn.committrans
end if
%>
<br><br><font color="red" size="+1">用户名为<%=keepformat(username)%>的用户注册成功!</font><br><br>
<%
end if
else
%>
<div align="center">
<table width="80%" border="0">
<tr><td>
<center><b><font color="red" size="+1">出错了</font></b></center><br><br>
<font color="#ee0000" size="+1"><%=errorinfo%></font>
<center><input type="button" value="返回" onclick="history.go( -1 );return true;"></center>
</td></tr></table>
</div>
<%
end if
else
%>
<script Language="JavaScript">
function maxlength(str,minl,maxl)
{
if(str.length <= maxl && str.length >= minl)
{
return true;
}
else
{
return false;
}
}
function form_check()
{
var l1=maxlength(document.form2.username.value,1,10);
if(!l1)
{
window.alert("用户名的长度不能超过5个汉字或10个英文字符!");
document.form2.username.focus();
return (false);
}

var l2=maxlength(document.form2.password.value,1,20);
if(!l2)
{
window.alert("密码的长度大于1位小于20位");
document.form2.password.focus();
return (false);
}

var a1=document.form2.password.value;
var a2=document.form2.repassword.value;
if(a1!=a2)
{
window.alert("两次输入的密码应相同");
document.form2.repassword.focus();
return (false);
}


var l3=maxlength(document.form2.name.value,1,10);
if(!l3)
{
window.alert("姓名的长度不能超过5个汉字或10个英文字符!");
document.form2.name.focus();
return (false);
}
}
</script>
<table border="0" cellpadding="0" cellspacing="0" width="600">
<%
Set Rs=Server.CreateObject("Adodb.Recordset")
Sql="Select * From DocManageTypeTable"
Rs.Open Sql,Conn,1
%>
<form action="<%=href%>" method=post name="form2" onsubmit="return form_check();">
<table border="1" cellspacing="0" cellpadding="0" bordercolorlight="#c0c0c0" bordercolordark="#FFFFFF">
<tr height="25">
<td>
用 户 名:<input type=text name="username" size=20 maxlength="10"><font color=red>*</font>
</td>
</tr>
<tr height="25">
<td>
密    码:<input type="password" name="password" size=20 maxlength="20"><font color=red>*</font>


</td>
</tr>
<tr height="25">
<td>
密码确认:<input type="password" name="repassword" size=20 maxlength="20"><font color=red>*</font>
</td>
</tr>
<tr height="25">
<td>
姓    名:<input type="text" name="name" size=20 maxlength="10"><font color=red>*</font>
</td>
</tr>
<tr height="25">
<td>
联系方式:<input type="text" name="userdept" size=20 maxlength="10">
</td>
</tr>
<tr height="25">
<td>
工作单位:<input type="text" name="userlevel" size=20 maxlength="10">
</td>
</tr>
<tr height="25">
<td align=center>
<input type="hidden" value=" 增加 " name="submit"><input type=image src="anniupic/an_zhenjia.jpg" style="cursor:hand" align="absmiddle" border=0>
</td>
</tr>
</table>
</form>
<%
end if
end sub
%>
<%
Conn.commitTrans
Conn.Close
Set Conn=Nothing
%>
</body>

</html>


[解决办法]
代码看得我有点晕晕的,能把代码写工资点吗?
[解决办法]

探讨

没人帮忙解答下吗。。。快来人啊,。。

[解决办法]
建议楼主,下次遇到问题先学习怎么排查,调试。最后发现确实有问题而且不知道怎么解决再发上来。
最好不要代码刚有问题就全帖出来了,我们有心帮助但看到这么长的代码也晕了啊
[解决办法]
代码最好简介
[解决办法]
看代码的样子是一个检索字符穿格式的程序
还不如用正则好用
[解决办法]
代码太长,还不规范,看得我晕乎乎,有请有耐心人士来解。

读书人网 >ASP

热点推荐