ASP问题,无法添加二级目录的问题 50

设计一个档案管理系统,三级结构是:案卷-分案卷-档案案卷表ClassDossier有案卷号ClasssID,案卷名称ClassTitle类型分别为:int,varchar... 设计一个档案管理系统,三级结构是:案卷-分案卷-档案
案卷表ClassDossier有案卷号ClasssID,案卷名称ClassTitle 类型分别为:int, varchar
分案卷表SubDossier有案卷号ClasssID,分案卷号SubID,分案卷名称SubTitle 类型分别为:int,int, varchar
问题是:
在没有建立表之间关联的情况下
前一页通过<td ><a href="SubDossierManage.asp?classid=<%=Rs("classid")%>">
</td>
将一级目录:案卷号classid传递给本页面
代码如下:
<table width="100%" ID="Table3">
<tr align="center">
<td height="30" colspan="5">
<a href="SubDossierManage.asp?action=Add">◆添加分案卷◆</a>
</td>
</tr>
<tr align="center" >
<td width="35%" >分案卷名称</td>
<td width="35%" >相关操作</td>
</tr>
<%
Dim classid
classid=Request("classid")
Set Rs1 = Server.CreateObject("ADODB.RecordSet")
Sql1="Select * From SubDossier where ClassID="&ClassID&" Order By SubID "
Rs1.Open Sql1,conn,3,3
If Rs1.Eof And Rs1.Bof Then
Response.Write "<tr><td>该案卷还没有分案卷!"
Response.Write "</td></tr>"
Else
Do While not Rs1.Eof
%>
<tr bgcolor="#FFFFFF">
<td align="center"><a href="ArchivesManage.asp?classid=<%=Rs1("classid")%>&SubID<%=Rs1("SubID")%>" target="_blank">
<%
Response.Write Rs1("SubTitle")
%></a>
</td>
<td align="center">
<a href="SubDossierManage.asp?action=Edit&classid=<%=Rs1("classid")%>&SubID=<%=Rs1("SubID")%>"><img src="Images/edit.jpg" >修改</a>
</td>
</tr>
<% Rs1.MoveNext
Loop
%>
<%End If
Rs1.Close
Set Rs1=nothing
%>

<%
classid=Request("classid")
SubID=Request("SubID")
If Request("action")="SaveAdd" Then
Call SaveAdd()
End If
%>
<% If Request("action")="Add" Then %>
<tr align="center" ><form name="form2" method="post" action="SubDossierManage.asp?action=SaveAdd" ID="Form1"> <td height="30" >添加分案卷名称:
<input name="title2" type="text" size="23" ID="Text1"><input type="submit" name="Submit" value="确定添加" ID="Submit1">
</td></form>
</tr>
<% End If %>
</table>

<%
Sub SaveAdd()
dim SubTitle
SubTitle=Request.Form("title")
If SubTitle = "" Then
Response.Write "<Script>alert('请输入要添加的分案卷名称!')</Script>"
Else
Set Rs5 = Server.CreateObject("ADODB.Recordset")
Sql5="Select * From SubDossier"
Rs5.Open Sql5,conn,3,3
Rs5.AddNew
Rs5("SubTitle") = SubTitle
Rs5.Update
Rs5.Close
Set Rs5=nothing
Response.Redirect "SubDossierManage.asp"
End If
End Sub
%>
程序不能被执行,执行添加时报
错误是:
Set Rs1 = Server.CreateObject("ADODB.RecordSet")
Sql1="Select * From SubDossier where ClassID="&ClassID&" Order By SubID "
Rs1.Open Sql1,conn,3,3
错误原因是:Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '=' 附近有语法错误。
痛快点,说怎么改嘛,我等着用呢
展开
 我来答
mrkingyang
2008-10-30 · TA获得超过2627个赞
知道大有可为答主
回答量:1941
采纳率:58%
帮助的人:266万
展开全部
Sql1="Select * From SubDossier where ClassID="&ClassID&" Order By SubID "

这句SQL在执行时由于入参ClassID为空,构建成一个非法的语句,所以执行出错了。

代码写的太糙了,你至少要对于入参做合法性检测,例如是否为空,是否是整数等。否则极易被非法入侵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式