日期:2014-05-17  浏览次数:20450 次

为何java就是不能执行这句查询呢?

String querycol=“TYPE”; //read from JCOMBOX
String value="bread";  //read from JTEXTFIELD

String [] paras={querycol,value};
String sql="select RMCODE,LOTNO,Name, from PD_Sample_Received where ?=?";

sqlhelper.query(sql, paras); //调取函数出来查询

rs=ps.executeQuery();  函数里的语句

请问java 中select用 where ?=? 设置两个参数,参数通过Jtextfield 和 Jcombox 控件来取值,就是不能执行
参数语句这样改也不行:
String [] paras={querycol,"'"+value+"'"};

应该如何做啊?

------解决方案--------------------
你跟踪一下看参数传过去了没?而且是不是应该where 后面要为一个列而不是问号啊?我没用过java
------解决方案--------------------
像这个应该要动态执行.列名不能直接参数的吧.我测试下C#.
------解决方案--------------------
lz 把 你的sql 参数合并上后,print出来看看是否符合T-sql语法要求。 
------解决方案--------------------
引用:
引用:lz 把 你的sql 参数合并上后,print出来看看是否符合T-sql语法要求。

如何print啊?
其实如下信息已经是在调用 ps.executeQuery() 之前打印出来的啊:
select RMCODE,LOTNO,Name,Type from PD_Sample_Received where ?=?

P……


java单步调试的时候,应该可以看到对应的sql变量的具体t-sql语句。lz调试看看。
具体做法不详,可以问问java板块。
------解决方案--------------------
引用:
引用:引用:引用:lz 把 你的sql 参数合并上后,print出来看看是否符合T-sql语法要求。

如何print啊?
其实如下信息已经是在调用 ps.executeQuery() 之前打印出来的啊:
select RMCODE,LOTNO,Name,Typ……


再仔细核查一遍,注意逗号等符号的全半角等...