String querycol=“TYPE”; //read from JCOMBOX
String value="bread";  //read from JTEXTFIELDString [] 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+"'"};应该如何做啊?

解决方案 »

  1.   

    你跟踪一下看参数传过去了没?而且是不是应该where 后面要为一个列而不是问号啊?我没用过java
      

  2.   


    我跟踪了,参数传递的很正确啊,看看我java程序中debug 输出:debug=>inquery by col name=Type
    debug=>SQL cmd line=select RMCODE,LOTNO,Name,Type from PD_Sample_Received where ?=?
    debug=>Paras [0]=Type
    debug=>Paras [1]=puree   (改成 'puree'也一样不行)
    debug=>paras.lenght=2
    debug=>in sqlhelper loop paras[0]=Type
    debug=>in sqlhelper loop paras[1]=puree把Type 查询值改成'puree'也不行,程序运行也没有任何报错信息,大家知道如何解决这个问题呢?
      

  3.   

    lz 把 你的sql 参数合并上后,print出来看看是否符合T-sql语法要求。 
      

  4.   


    如何print啊?
    其实如下信息已经是在调用 ps.executeQuery() 之前打印出来的啊:
    select RMCODE,LOTNO,Name,Type from PD_Sample_Received where ?=?Paras [0]=Type
    Paras [1]=puree   (或者改成 'puree'也一样不行)直接在sql 查询分析器里如下语句运行的很好啊:
    select RMCODE,LOTNO,Name,Type from PD_Sample_Received where type=‘puree'
     
      

  5.   


    java单步调试的时候,应该可以看到对应的sql变量的具体t-sql语句。lz调试看看。
    具体做法不详,可以问问java板块。