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初学者,请各位大哥帮小弟看看这两个程序程序。