你的name字段是为字符型吧,querystr里有没有引号:试试看下边的:
ResultSet rstmp=sttmp.executeQuery("select * from Tabelname where rtrim(name)='"+querystr+"'");

解决方案 »

  1.   

    还应该加上\:
    ResultSet rstmp=sttmp.executeQuery("select * from Tabelname where rtrim(name) = \'" + querystr + "\'");
      

  2.   

    SQL的string型可能和j的string型不太一样,你在你的命令前把result的结果强制类型转换成int,在j中把int型在强制转换成string,试试看看,可能行
    :)
      

  3.   

    ResultSet rstmp=sttmp.executeQuery("select * from Tabelname where rtrim(name) ="+" \'" + querystr + "\'");
    还是不行.
    "cannot return a value from method whose result type is void "
    为什么会抱这种错呢?
      

  4.   

    public void dispdata() throws SQLException {
           Connection conquery=DriverManager.getConnection("jdbc:odbc:sql");
            Statement sttmp=conquery.createStatement();
            ResultSet rstmp=sttmp.executeQuery("select * from Tablename where rtrim(code)="+"\'"+querystr+"\'");
           if(!rstmp.next()) return
            valcode.setText(rstmp.getString(1));
            valname.setText(rstmp.getString(2));
           valzsp.setText(String.valueOf(rstmp.getFloat(3)));
           valjkp.setText(String.valueOf(rstmp.getFloat(4)));
           valzgj.setText(String.valueOf(rstmp.getFloat(5)));
           valzdj.setText(String.valueOf(rstmp.getFloat(6)));
           valzxj.setText(String.valueOf(rstmp.getFloat(7)));
           valcjss.setText(String.valueOf(rstmp.getFloat(8)));
           valcjje.setText(String.valueOf(rstmp.getFloat(9)));
           valzd1.setText(String.valueOf(rstmp.getFloat(10)));
           valzd2.setText(String.valueOf(rstmp.getFloat(11)));
      }
    数据库是一个SQL7的表,结构如下:
    code char (6)
    name char(10)
    column3---column11 都是 numeric 类型. 
    dsn="sql"已经在ODBC中连接到这个表的数据库了
      

  5.   

    跟你的ODBC或SQL7.0的Driverj有关系,在我这边没有问题,我用JDBC-ODBC bridge 及JDBC driver都试试过,没问题.(OS: window2 2000 server,SQL 7.0)现在用JDBC ODBC bridge的不多它性能不稳定,建议你用JDBC Driver
      

  6.   

    但是我的代码里这些代码却没有问题啊?
                     code=rs.getString(1);                   
                     name=rs.getString(2);
                     zsp=rs.getFloat(3);  
                     jkp=rs.getFloat(4);  
                     zgj=rs.getFloat(5);  
                     zdj=rs.getFloat(6);  
                     zxj=rs.getFloat(7);  
                     cjss=rs.getFloat(8); 
                     cjje=rs.getFloat(9);
    惟独上面那段代码通不过,而且SQL语句都是一样的.
    我用的JDK1.4.0,WINDOWS XP,我的ODBC测试也是通的啊,
      

  7.   

    我这边为什么全部通过了?
    建议你调试一下你的代码,加上System.out.println("a");就可以,看看执行到哪一行时问题
    public void dispdata() throws SQLException {
           Connection conquery=DriverManager.getConnection("jdbc:odbc:sql");
            Statement sttmp=conquery.createStatement();
            ResultSet rstmp=sttmp.executeQuery("select * from Tablename where rtrim(code)="+"\'"+querystr+"\'");
    System.out.println("a1");
           if(!rstmp.next()) return
    System.out.println("a2");
            valcode.setText(rstmp.getString(1));
    System.out.println("a3");
            valname.setText(rstmp.getString(2));
    System.out.println("a4");
           valzsp.setText(String.valueOf(rstmp.getFloat(3)));
    System.out.println("a5");
           valjkp.setText(String.valueOf(rstmp.getFloat(4)));
           valzgj.setText(String.valueOf(rstmp.getFloat(5)));
           valzdj.setText(String.valueOf(rstmp.getFloat(6)));
           valzxj.setText(String.valueOf(rstmp.getFloat(7)));
           valcjss.setText(String.valueOf(rstmp.getFloat(8)));
           valcjje.setText(String.valueOf(rstmp.getFloat(9)));
           valzd1.setText(String.valueOf(rstmp.getFloat(10)));
           valzd2.setText(String.valueOf(rstmp.getFloat(11)));
      

  8.   

    老大,编译都通不过啊,怎么调试?看来要不能用JDBC-ODBC了,我DOWN了一个SQL 的JDBC驱动,解压后有三个JAR文件,怎么使用他们,给篇介绍的文章也行.
      

  9.   

    不会吧,兄弟,你贴的代码: return 后少;你是从Microsft上down的吧:
    JDBC Driver Source Code:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
    Connection conn = DriverManager.getConnection(URL,"sa","passworld");
    URL 格式为:
    "jdbc:microsoft:sqlserver://"+HostName+":"+Port(Default value 1433)+";databasename=" + databaseName;
    在classpath中加入刚才的三个jar文件,上面的代码要你要修改一下加上相应的东西,