import java.sql.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class RiPingjunLiuliang {
public static void main(String args[]) {
String STTM = "";
String ENTM = "";
String STCD = "";
String NAME = "";
Connection conn;
Statement state;
ResultSet res;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:ccc", "", "");
state = conn.createStatement();
res = state.executeQuery("SELECT * FROM ZONG_HE WHERE leixing='RVER'"); while (res.next()) { STCD = res.getString(1);
NAME = res.getString(8);
STTM = res.getString(3);
ENTM = res.getString(4);
System.out.println(STCD+"    "+NAME +"   "+STTM); }
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}请问 为什么什么都输不出来,难道变量里面根本都没有存入值吗?     请高手指点!

解决方案 »

  1.   

    没用过你用的数据库,不过什么都没打出来的话
    应该是
    SELECT * FROM ZONG_HE WHERE leixing='RVER'
    没找到记录
      

  2.   

    在while{}之前,打印res.next()的值看下。
      

  3.   

    conn = DriverManager.getConnection("jdbc:odbc:ccc");你这样试过吗???
      

  4.   

    在while里边,加一句输出 System.out.println("this");就知道res是否有值了... private String driver ="com.mysql.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/usersdb";
    //SQL 2005连接...
    private Connection conn = null;
    private String user = "root";
    private String password ="baishi";
    private Statement statement = null;
    public ResultSet result = null;
    public SqlConn(){
    try {
    Class.forName(driver);
    conn = DriverManager.getConnection(url,user,password);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    public ResultSet doSelect(String sql){
    try {
    //System.out.println(conn);
    statement= conn.createStatement();
    result = statement.executeQuery(sql);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return result;
    }public static void main(String [] args){
    SqlConn conn = new SqlConn();
    String sql = "select * from users";
    ResultSet set = conn.doSelect(sql);
    try {
    while(set.next()){
    System.out.print(set.getString("username"));
    System.out.print(set.getString("pwd"));
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    conn.doCloseConn();
    }
    }
    参考一下...
      

  5.   

    没用过你的数据库,你看下conn = DriverManager.getConnection("jdbc:odbc:ccc", "", ""); 
    中的"jdbc:odbc:ccc"是否正确,包括格式。我用MySQL是这样写的:
    con = DriverManager.getConnection(SERVANDDB, USER, PWD);
    SERVANDDB="jdbc:mysql://127.0.0.1:3306/myjspdb";
      

  6.   

    说错了,是没用过odbc桥连数据库,在网上看到的,供参考:
    odbc桥接 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //装载JDBC-ODBC驱动程序 
    strCon = "jdbc:odbc:Test_DB"; //设置数据库连接字符串 ,test_DB 
    strCon = "jdbc:odbc:;Driver={Microsoft Access Driver (*.mdb)};DBQ=路径\\数据库名称"; //匿名连接,不需要配置ODBC数据源 
    strCon = "jdbc:odbc:;Driver={SQL Server};server=主机名\\实例名;database=数据库名称"; //匿名连接,不需要配置ODBC数据源 
      

  7.   

    1. 你确定你写的程序运行时没错?2. 你确定你那个表里有那个数据?3. 如果1、2都没问题,那你在执行查询语句的地方设置断点,debug调试一下...
      

  8.   

    可以把异常抛出来,从控制台查看是否又sqlException