package 员工录入统计001;
import java.sql.*;
class jabc
{
    public static void main(String arg[])
    {
        Statement sta;
        Connection conn;
        try
        {
         System.out.println("正在连接数据库");
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
         conn= DriverManager.getConnection("jdbc:odbc:jdbc","sa","sa");
         System.out.println("已经连接到数据库");
       Statement state = conn.createStatement();
       String query = "select name from sysdatabases";
       ResultSet re = state.executeQuery("select name from sysdatabases");//sysdatabases无效
        while(re.next())
        {
            String name = re.getString("name");
            System.out.println(name);
        }
         state.close();
         conn.close();
        }
        catch(Exception e)
        {
            System.out.println("出现的异常" +e);
        }    }
}

解决方案 »

  1.   

    sysdatabases有这个表吗????报错报的无效的对象吧???
      

  2.   

    sysdatabases这个表是在master库里的就是库里所有表的清单,,,,如果是数据库没连上的话应该显示是sqlserver not find什么的!~不应该提示说sysdatabases表无效啊!~~~~~~~~~~~~~是什么原因啊!~~~~~~~~是不是应该把ResultSet re = state.executeQuery("select name from sysdatabases");换成ResultSte re = state.executeQuery(qurey);啊 我觉得没什么改变啊!~~~~~~~~~~
      

  3.   

    还有就是如果把sysdatabases换成别的表也说无效 这到底是怎么回事啊
      

  4.   

    有没有可能是在conn= DriverManager.getConnection("jdbc:odbc:jdbc","sa","sa"); 中把数据库master加在conn= DriverManager.getConnection("jdbc:odbc:jdbc","master","sa","sa"); 有没有可能是这么改啊!~~~~~~~~~~
      

  5.   

    就是,sysdatabases是master数据库里的
    你现在只是连接到缺省数据库
    而不是连接到master上
      

  6.   

    那为什么我新建了个库test中的表user_info也没有办法访问到呢!~~~~~~~~~~还有就是如果我想访问master应该怎么修改呢?因为我要用到sysdatabases中的name字段啊
      

  7.   

    我是通过右击master数据库新建查询,然后在查询里面输入代码解决此问题的