日期:2014-05-18  浏览次数:20717 次

数据库内容未能显示
提交表单后,希望出现数据库中的char类型的一列:objectname,
但提交后总是不能显示数据库内容,怎么回事?(页面没问题,可以显示别的内容)
  显示代码如下: 
  String name =request.getParameter("name");  
  String sql="select * from compcacu where objectname ="+name;
   
  ResultSet rs=stmt.executeQuery(sql);
  while(rs.next()){
  out.println(rs.getRow());
  out.print("用户ID:");
  out.print(rs.getString(1);
  out.print(rs.getString(2);....

------解决方案--------------------

------解决方案--------------------
String sql="select * from compcacu where objectname ='"+name+"'"; 

------解决方案--------------------
探讨
String sql="select * from compcacu where objectname ='"+name+"'";


------解决方案--------------------
字符串类型 需要单引号

数字类型 不用单引号
------解决方案--------------------
String name =request.getParameter("name");

问题1确认name 是否收倒,System.out.println(name);

问题2 name 是否转码?如果是在javabean里面,name如果是中文是需要转码的,

name = new String(name.getBytes("ISO8859-1","GBK")); 根据页面的<%@ page language="java" contentType="text/html; charset=gbk" pageEncoding="GBK" %>

String sql="select * from compcacu where objectname ="+name; //改为 String sql="select * from compcacu where objectname = '"+name+"';
问题2,bojectname = admin; 自己在数据库这样写 是存在错误的,应该加上'' bojectname='admin';

ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()){ 
out.println(rs.getRow()); 
out.print("用户ID:"); 
out.print(rs.getString(1); 
out.print(rs.getString(2);....