如何用ASP代码提示 SQL 语句错误?
用户在“改良的5-01.asp”文件中的文本框输入SQL语句,然后在页面上用表格显示出相关记录。在此,有person.mdb文件同该asp页面放在同个目录中。所以连接数据...
用户在“改良的5-01.asp”文件中的文本框输入SQL语句,然后在页面上用表格显示出相关记录。在此,有person.mdb文件同该asp页面放在同个目录中。所以连接数据库的代码没错。
现在的问题是,如果用户输入正确的SQL语句,用表格来显示出相关记录;如果用户在文本框中没有输入语句,直接点击“执行”按钮,就提示“请输入SQL语句”;这两者都实现的。不能实现的是:如果用户输入的SQL语句书写格式错误,则提示“您输入了错误的SQL语句,请重新输入”。请问如何解决?该ASP页面的相关代码如下:
<HTML><BODY>
<%
On Error Resume Next '发生错误后,继续执行下一句
If Request("SQL") <>"" Then
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" &_
Server.MapPath("person.mdb")) '该数据库不存在
sql = Request("SQL")
set rs = conn.Execute(sql)
if not conn.error.count > 0 then
rstotab(rs)
conn.close()
else
Response.Write("您输入了错误的SQL语句,请重新输入")
conn.close()
end if
else '如果用户没有在文本框中输入任何内容
Response.Write("<script Language=Javascript>alert('请输入 SQL 语句');</script>")
End If
%>
<%
Function rstotab(rs)
Response.write ("<TABLE BORDER=1>")
Response.write ("<TR>")
' Part I�输出"表头名称"�
For i=0 to rs.Fields.Count-1
Response.Write("<TD><B>" & rs(i).Name & "</B></FONT></TD>")
Next
Response.write ("</TR>")
' Part II�输出数据表的"内容"�
rs.MoveFirst() ' 将目前的数据记录移到第一项
While Not rs.EOF ' 判断是否过了最后一项
Row = "<TR ALIGN=MIDDLE>"
For i=0 to rs.Fields.Count-1
Row = Row & "<TD>" & rs(i) & "</TD>"
Next
Response.Write(Row & "</TR>")
rs.MoveNext() ' 移到下一项
Wend
End Function
%>
</TABLE>
<FORM Action="改良的5-01.asp" Method=POST>
指令:<INPUT Type="Text" Name="SQL" Size ="60" Value="<%=Request("SQL")%>"><P>
<INPUT Type=Submit Value=" 执行">
</FORM>
</BODY> </HTML> 展开
现在的问题是,如果用户输入正确的SQL语句,用表格来显示出相关记录;如果用户在文本框中没有输入语句,直接点击“执行”按钮,就提示“请输入SQL语句”;这两者都实现的。不能实现的是:如果用户输入的SQL语句书写格式错误,则提示“您输入了错误的SQL语句,请重新输入”。请问如何解决?该ASP页面的相关代码如下:
<HTML><BODY>
<%
On Error Resume Next '发生错误后,继续执行下一句
If Request("SQL") <>"" Then
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" &_
Server.MapPath("person.mdb")) '该数据库不存在
sql = Request("SQL")
set rs = conn.Execute(sql)
if not conn.error.count > 0 then
rstotab(rs)
conn.close()
else
Response.Write("您输入了错误的SQL语句,请重新输入")
conn.close()
end if
else '如果用户没有在文本框中输入任何内容
Response.Write("<script Language=Javascript>alert('请输入 SQL 语句');</script>")
End If
%>
<%
Function rstotab(rs)
Response.write ("<TABLE BORDER=1>")
Response.write ("<TR>")
' Part I�输出"表头名称"�
For i=0 to rs.Fields.Count-1
Response.Write("<TD><B>" & rs(i).Name & "</B></FONT></TD>")
Next
Response.write ("</TR>")
' Part II�输出数据表的"内容"�
rs.MoveFirst() ' 将目前的数据记录移到第一项
While Not rs.EOF ' 判断是否过了最后一项
Row = "<TR ALIGN=MIDDLE>"
For i=0 to rs.Fields.Count-1
Row = Row & "<TD>" & rs(i) & "</TD>"
Next
Response.Write(Row & "</TR>")
rs.MoveNext() ' 移到下一项
Wend
End Function
%>
</TABLE>
<FORM Action="改良的5-01.asp" Method=POST>
指令:<INPUT Type="Text" Name="SQL" Size ="60" Value="<%=Request("SQL")%>"><P>
<INPUT Type=Submit Value=" 执行">
</FORM>
</BODY> </HTML> 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询