当前位置:编程学习 > JSP >>

jsp 查询设计程序

<body> <table width="390" border="1"> <tr> <td >编号</td> <td >故障码</td> <td >故障信息</td> <td >备注</td> </tr> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:biao");//biao是数据源名 Statement stmt = conn.createStatement(); String sql="select * from list where 'NO'='textfield'";//textfield为变量 ResultSet rs=stmt.executeQuery(sql); while(rs.next()){ %> <tr> <td><%out.print(rs.getString("NO"));%> </td> <td><%out.print(rs.getString("A"));%> </td> <td><%out.print(rs.getString("B"));%> </td> <td><%out.print(rs.getString("C"));%> </td> </tr> <% rs.close(); stmt.close(); conn.close(); %> </table> </body> 调试过程中有错误 求高手修正
补充:错误信息为
org.apache.jasper.JasperException: Unable to compile class for JSP

Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\search_jsp.java:93: 'catch' without 'try'
    } catch (Throwable t) {
      ^


Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\search_jsp.java:31: 'try' without 'catch' or 'finally'
    try {
    ^


Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\search_jsp.java:105: '}' expected
^
3 errors

谢谢大家 如果解决高分感谢
答案:将我修改过后的代码拿去试试:
<body>
<table width="390" border="1">
  <tr>
    <td >编号</td>
    <td >故障码</td>
    <td >故障信息</td>
    <td >备注</td>
  </tr>
 <%
try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   Connection conn = DriverManager.getConnection("jdbc:odbc:biao");//biao是数据源名
   Statement stmt = conn.createStatement();   
   String sql="select * from list where NO='"+textfield+"'";//textfield为变量,如果textfiled的类型为int,则不用加单引号。
   ResultSet rs=stmt.executeQuery(sql);
   while(rs.next()){
  %>
  <tr>
    <td><%out.print(rs.getString("NO"));%> </td>
    <td><%out.print(rs.getString("A"));%> </td>
    <td><%out.print(rs.getString("B"));%> </td>
    <td><%out.print(rs.getString("C"));%> </td>
</tr>
<%
  }
  rs.close();
  stmt.close();
  conn.close();
}
catch(Exception e){
 e.printStackTrace();
 } 

%>
</table>
</body>



建议使用非数据源的方式来连接数据库,如下:


<body>
<table width="390" border="1">
  <tr>
    <td >编号</td>
    <td >故障码</td>
    <td >故障信息</td>
    <td >备注</td>
  </tr>
 <%

try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
   String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=" + application.getRealPath("jsp.mdb");//jsp.mdb为数据库文件相对于当前jsp文件的路径.
   Connection conn = DriverManager.getConnection(url,"","");//格式为:(url,"数据库用户名","数据库密码"),如果ACCESS数据库没设置密码的话,就全为空。
   Statement stmt=conn.createStatement() ;

   String sql="select * from list where NO='"+textfield+"'";//textfield为变量,如果textfiled的类型为int,则不用加单引号。
   ResultSet rs=stmt.executeQuery(sql);
   while(rs.next()){
  %>
  <tr>
    <td><%out.print(rs.getString("NO"));%> </td>
    <td><%out.print(rs.getString("A"));%> </td>
    <td><%out.print(rs.getString("B"));%> </td>
    <td><%out.print(rs.getString("C"));%> </td>
</tr>
<%
  }
  rs.close();
  stmt.close();
  conn.close();
}
catch(Exception e){
 e.printStackTrace();
 } 

%>
</table>
</body> 


问题总结:
1、String sql="";语句有问题。
2、while(rs.next()){ }少了一个“}”。
3、SQL语句的使用要放在如下格式中:
try
{
//代码
}
catch(Exception e){
 e.printStackTrace();//抛出异常
 } 

希望对你有帮助!
最后,祝你好运!
其他:String sql="select * from list where 'NO'='textfield'";//textfield为变量

这个sql语句就错了,应该是:String sql="select * from list where NO='textfield'";//textfield为变量
如果NO是字段名的话。 

上一个:DELPHI怎么把窗体写成DLL给其他程序调用
下一个:我是jsp初学者,请各位大哥帮小弟看看这两个程序程序。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,