日期:2014-05-20  浏览次数:20903 次

java连接sql数据库问题
编写了一段代码,连接sql server 数据库,数据库名称为:q。 运行是出现如下错误:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录 ' q ' 中请求的数据库。登录失败。

请问是哪里出了问题,望各位大侠指教!
谢谢!

------解决方案--------------------
连接不上数据库啊。。

看看Connection写得是否正确。。
------解决方案--------------------
sp3,sp4补丁打了没?还有驱动可能有问题
------解决方案--------------------
确认数据库服务器是否打开。
------解决方案--------------------
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
JobcnConn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=jobcn90", "forboss", "forboss");
Stmt = JobcnConn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE, java.sql.ResultSet.CONCUR_READ_ONLY);
------解决方案--------------------
用命令行 看看能不能进去
Java code
connect to q user [color=#FF0000]username [/color]using [color=#FF0000]password [/color]

------解决方案--------------------
用户名,密码确认正确,报的错误是登陆失败。
------解决方案--------------------
Java code

try{ 
  Class.forName(driver); 
  System.out.println("driver is ok"); 
  con = DriverManager.getConnection(url,"sa",""); 
  System.out.println("conection is ok"); 
      sta = con.createStatement(); 
      //String sql = ""; 
      rs = sta.executeQuery("select code from userbiao where user ='"+ ss +"'"); 
    
      //String stud="update persons set tt='"+tt1+"' where name='"+name1+"'"; 
      
      while(rs.next()){ 
      
      System.out.println(rs.getString("code")); //这里错了
      
      } 
      //System.out.println(rs.getInt("roomNum")); 
    
  }catch(Exception e) 
  { 
    e.printStackTrace(); 
  } 
}

------解决方案--------------------

你可能把连接写错了。你把你全部代码贴过来看看。

你只是打印加载驱动成功,而不是获取连接成功。
------解决方案--------------------
jdbc放对地方了没?
------解决方案--------------------
从报的错来看,是连接到数据库失败,可以肯定的是
1,驱动加载已成功
2,打开数据库的连接失败,因此问题可以肯定是在URL上
解决思路
1.先用别的工具连一下这个数据库看是否能正确连接
2.如果不能,说明数据库本身配置的有问题,如果能,调代码吧。。。。。

或者LZ你吧抛的整个异常信息贴上来看看
------解决方案--------------------
把你的数据库升级到SP4就可以了.用户和密码一定要写正确.
------解决方案--------------------
总结楼上几位的回答,基本应该是数据库无法连接。

检查数据库服务是否已经启动。

另外如果是远程连接的话,也要检查能否PING得到那个服务器所在的机器。

如果LOCALHOST这里是机器名的话, 最好在drive/etc/host这个文件下配置机器名对应的IP。
------解决方案--------------------
上面写错一个地方。

C:\WINDOWS\system32\drivers\etc路径是这个。
文件是hosts