我正在尝试编写一个非常简单的 GUI 应用程序,用于将一些记录插入数据库并读回一些记录(没什么花哨的,只有 1 个有 3 行的表,没有关系)。来源...
package EntryProg;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
public class CourseDataEntryHandler
{
private Connection connect;
private CallableStatement callState;
private ResultSet rSet;
private SQLServerDataSource dSource;
public CourseDataEntryHandler()
{
rSet = null;
callState = null;
dSource = new SQLServerDataSource();
dSource.setUser(REDACTED);
dSource.setPassword(REDACTED);
dSource.setServerName(REDACTED);
dSource.setPortNumber(REDACTED);
dSource.setDatabaseName(REDACTED);
dSource.setEncrypt(true);
dSource.setTrustServerCertificate(true);
try
{
此处出错
connect = dSource.getConnection();
结束错误
}
catch (SQLServerException e)
{
//TODO Figure out how to handle -- logging for now, console
do
{
System.out.println(e.getErrorCode());
System.out.println(e.getMessage());
System.out.println(e.getSQLState());
e = (SQLServerException) e.getNextException();
} while (e != null);
System.out.println("END");
System.out.println();
}
}
我收到以下错误...
(代码)0
(消息)SQL Server 没有返回响应。连接已关闭。
(状态)08S01
我已经验证了用户、密码、服务器名称、端口和数据库名称都是准确的。如果我将用户名更改为无效用户名,则会收到“无法登录”错误报告,因此我知道我正在访问服务器。
我无法完全连接一次,所以我知道这不是“连接太多”的问题,因为目前唯一登录服务器的人是我通过 sql management studio。当我注销时它也不起作用,所以绝对不是连接问题。
应用程序用户也具有数据读取器/数据写入器权限。(如果这很重要,我正在使用 Eclipse。并且正在引用 sqljdbc4.jar 库)。
我不知道去哪里解决这个问题。任何帮助将不胜感激。
编辑 更新 - 我也尝试了一个连接字符串并使用 DriverManager.getConnection(connString) 来设置连接,这也不起作用。结果是一样的。另外,SQL server 2008 r2 是我使用的 sql server 版本。
编辑 我写了一个快速的C#程序来测试连接,果然连接在.net中工作正常,不幸的是我必须为这个项目使用java(这是我选择自己为一个班级做的一个项目,只有要求是在Java中吗...老师也不知道发生了什么)。