com.microsoft.sqlserver.jdbc.SQLServerException: '%%' 附近有语法错误。
是哪里错了。怎么解决?
------解决方案--------------------%%不是模糊查询吗
------解决方案--------------------把代码贴出来。。就一句错误,,只能告诉你是sql语句或数据库连接语句错误了
------解决方案-------------------- String condition="select*from employee1 where"+ziduan+"Like'%"+keyWord+"%'";
这句有问题
改为:
String condition="select * from employee1 where "+ziduan+" like '%"+keyWord+"%'";
原因:where "+ziduan+" like '%"+keyWord+"%'";之间少了空格,导致sql语句连起来了。。报错了
------解决方案--------------------5楼正解
------解决方案--------------------public StringBuffer getQueryResult(){
String condition="select*from employee1 where"+ziduan+"Like'%"+keyWord+"%'";
StringBuffer str=f(condition);
return str;
}
那是因为上句执行时,你的两个参数ziduan和keyword根本没有赋值吧?所以就出现问题了。。
你debug调试一下,看看。我怀疑ziduan="",keyword=""。
------解决方案--------------------你这是struts1.我好久没弄过了。。你只需要将页面参数传到后台就行了。。。
Java code
public void setKeyWord(String s){
keyWord=s.trim();
try{
byte bb[]=keyWord.getBytes("ISO-8859-1");
keyWord=new String(bb,"GB2312");
}
catch(Exception e){}
}
public String getKeyWord(){
return keyWord;
}
public void setZiduan(String s){
ziduan=s.trim();
try{
byte bb[]=ziduan.getBytes("ISO-8859-1");
ziduan=new String(bb,"GB2312");
}
catch(Exception e){}
}
你这两个类是转换中文乱码的。。。所以你可以先用String zd=request.getParameter("ziduan")或者String kw=request.getParameter("keyWord");
然后设置一下:setZiduan(zd);setKeyWord(kw);
看行不? 你debug看到错误根据错误改就行了。。。
------解决方案--------------------
------解决方案--------------------
将你那句sql 语句打印下 放到数据库查询下..看看 ziduan 在表中是否存在这个字段呢?
------解决方案--------------------
String condition="select * from employee1 where "+ziduan+" Like '%"+keyWord+"%'";
多加点空格嘛
------解决方案--------------------
既然提示语法错误,那就先看看没变量的写法有没报错。
String condition="select * from employee1 where number Like '%1%'";
如果没报错,就加回一个变量
String condition="select * from employee1 where "+ziduan+" Like '%1%'";
如果报错,就debug看ziduan是否等于""……不会debug就找身边的人问……
或者再笨点
System.out.ptintln("ziduan: [" + ziduan + "]");
System.out.ptintln("keyWord: [" + keyWord + "]");
运行看看终端输出什么。
------解决方案--------------------
前台form的action为空,你后台怎么获取值呢