查询数据库遇到中文问题,搞得我都晕啦,请高手帮忙~~~~~谁能解决50分就给他一人

java_linux 2004-08-26 10:37:29
查询的数据库是acess的,代码段如下:

String ziyuanfenku = request.getParameter("select1");
String xiangguanjibing = request.getParameter("select2");
String yangbenxingzhi = request.getParameter("select3");
String biaobenleixing = request.getParameter("select4");
String minzu = request.getParameter("select5");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:data");

String sq1="SELECT * FROM table1 WHERE (分库库号=?) AND (相关疾病=?) AND (样本性质 LIKE ?) AND (?='yes') (AND 民族=?)";
PreparedStatement state1 = con.prepareStatement(sq1);

if (yangbenxingzhi.equals("家系")){
String yangbenxingzhi1 = yangbenxingzhi+"%";
}

state1.setString(1,ziyuanfenku);
state1.setString(2,xiangguanjibing);
state1.setString(3,yangbenxingzhi1);
state1.setString(4,biaobenleixing);
state1.setString(5,minzu);
ResultSet rs1 = state1.executeQuery();
错误信息是:
cannot resolve symbol
symbol : variable yangbenxingzhi1
location: class org.apache.jsp.chgres.info.process_jsp
state1.setString(3,yangbenxingzhi1);

搞了半天不知道是怎么回事,是不是like子句的问题,还是中文的问题?



...全文
70 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
netsnooper 2004-08-26
state1.setString(3,yangbenxingzhi1);这里面的yangbenxingzhi1怎么解释,根本不是全局变量。
还是好好看看书吧。
if (yangbenxingzhi.equals("家系")){
String yangbenxingzhi1 = yangbenxingzhi+"%";
}
改成
String yangbenxingzhi1="";
if (yangbenxingzhi.equals("家系")){
yangbenxingzhi1 = yangbenxingzhi+"%";
}
回复
drugon 2004-08-26
根据系统的错误信息是说你的变量 variable yangbenxingzhi1 没有定义过,不能使用没有定义过的变量,你查一个你的变量名称是不是打错了?
我觉得zmybest(杨过)说得对,不是什么字符转换的问题。
回复
zhaofan81 2004-08-26
(样本性质 LIKE ?) 应该是(样本性质 LIKE ' ? ') 吧
回复
iversonxk 2004-08-26
to: 楼上,那个重要吗

你转码一下试试
回复
zmybest 2004-08-26
yangbenxingzhi1这个变量后面是一还是英文字母l?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-26 10:37
社区公告
暂无公告