首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

用JDBC连接sql server 2005出现“无法打开登录 'XXX' 中请求的数据库。登录失败。”,该怎么解决

2012-01-11 
用JDBC连接sql server 2005出现“无法打开登录 XXX 中请求的数据库。登录失败。”用jdbc可以连接 sql server

用JDBC连接sql server 2005出现“无法打开登录 'XXX' 中请求的数据库。登录失败。”
用jdbc可以连接 sql server 2005里的系统数据库(如master)。但是新建了一个数据库testdb,却连接不上,为什么?
代码如下:

public class Test {

private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=testdb";
private static final String USER = "sa";
private static final String PASSWORD = "123456";

public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con = null;
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(URL, USER, PASSWORD);
if (con != null) {
System.out.println("ok");
con.close();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

[解决办法]
你的登陆账号是SA,最搞权限了
[解决办法]

SQL code
一、下载安装1、SqlServer 2005 Express Edition   下载:http://msdn.microsoft.com/vstudio/express/sql/download/   安装完数据库后设置ICP/IP协议启动,具体如下:   (1)打开SQL Server Configuration Manager   (2)转到SQL Server 2005 Network Configuration->Protocols for SQLEXPRESS   (3)将TCP/IP设置为Enabled(启用)   (4)双击TCP/IP项,转到IP Addresses页   (5)IP All中设置TCP Port为1433   (6)重新启动服务2、SqlServer2005数据库JDBC驱动   下载:http://download.microsoft.com/download/d/2/e/d2e1ffb6-2cfa-4a62-a22d-a413cce93118/Download_SQL_JDBC_Driver.htm   安装或者解压,取得sqljdbc.jar文件,该文件即为JDBC驱动。将sqljdbc.jar放到classpath。(web application中放在WEB-INF/lib下)二、连接数据库SqlServer2005的java代码1、在tempdb中创建测试数据表格use tempdbCREATE TABLE dbo.Table_1( ID bigint NOT NULL, NAME varchar(20) NOT NULL, EMAIL varchar(50) NULL)  ON [PRIMARY]2、测试使用数据库连接   下面代码创建了一个连接到数据库的连接,及使用连接操作数据库。/* * 创建日期 2006-6-1 */package cn.afss.common.web.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import org.apache.log4j.Logger;/** * @author Amei * Amei's FreeSky Studio */public class TestConnSql2k5Bean { /**  * Log4J Logger for this class  */ private static final Logger logger =  Logger.getLogger(TestConnSql2k5Bean.class); private Connection conn = null; public TestConnSql2k5Bean() {  super(); } public void getConnection() {  try {   Class    .forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")    .newInstance();   String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";   String USER = "sa"; // 根据你自己设置的数据库连接用户进行设置   String PASSWORD = "sa"; // 根据你自己设置的数据库连接密码进行设置   conn = DriverManager.getConnection(URL, USER, PASSWORD);  } catch (java.lang.ClassNotFoundException ce) {   logger.error("Get Connection error:", ce);  } catch (java.sql.SQLException se) {   logger.error("Get Connection error:", se);  } catch (Exception e) {   logger.error("Get Connection error:", e);  } } public void testConnection() {  if (conn == null)   this.getConnection();  try {   String sql = "SELECT * FROM TABLE_1";   Statement stmt = conn.createStatement();   ResultSet rs = stmt.executeQuery(sql);   while (rs.next()) {    logger.debug(rs.getString("ID"));    logger.debug(rs.getString("NAME"));    logger.debug(rs.getString("EMAIL"));   }   rs.close();   stmt.close();  } catch (SQLException e) {   logger.error(e.getMessage(), e);  } finally {   if (conn != null)    try {     conn.close();    } catch (SQLException e) {    }  } } public static void main(String[] args) {  TestConnSql2k5Bean bean = new TestConnSql2k5Bean();  bean.testConnection(); }}三、Sql Server2000和2005的连接代码区别   写连接代码时需要注意2000和2005的不同:1、连接SqlServer2000  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();  URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";2、连接SqlServer2005  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();  URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";注:详细使用请参考MS JDBC中的官方文档。结束。  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/libra1983/archive/2006/09/22/1266183.aspx 


[解决办法]
新的连接不上 是不是因为新建立的数据库是在不同角色下创建的 ?

热点排行