import java.sql.*;
public class MSSQLTest {
  static {
    try {
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
      System.out.println("Success loading MS SQL Server Driver...");
    }
    catch (Exception e) {}
  }
  public static void main(String[] args) {
    String strSQL = "select * from abc";
    try {
System.out.println("程序已经运行到这里....\n\n");
      Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydata");
/* 我的数据库是mydata, 里边有一张表叫abc,*/      System.out.println("已经成功连接数据库了...");//这一句没有被打印出来, 估计是上面一句出了错误。      Statement strtl = con.createStatement();
      ResultSet rsl = strtl.executeQuery(strSQL);      ResultSetMetaData mdrs1 = rsl.getMetaData();
      int ColumnNum = mdrs1.getColumnCount();
      for (int i = 1 ; i <= ColumnNum ; i++) {
  System.out.print(mdrs1.getColumnName(i)+"\t");
  }
  System.out.print("\n--------------------------------------------------------------\n");
  while (rsl.next()) {
  String strData = "";
  for (int i = 1 ; i <= ColumnNum ; i++) {
  strData = strData+rsl.getString(i)+"\t";
  }
  System.out.println(strData);
  }
  con.close();
  }
  catch (Exception e) {
  e.printStackTrace();
  }
  }
}
E:\java\Myprogram>java MSSQLTest
Success loading MS SQL Server Driver...
程序已经运行到这里....java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用
户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关联。
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
 Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
 Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Un
known Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour
ce)
        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou
rce)
        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:193)
        at MSSQLTest.main(MSSQLTest.java:17)出现了以上错误,

解决方案 »

  1.   

    DriverManager.getConnection(url,user,pwd);
      

  2.   

    不一定非要用代码方式,可以采用ODBC-JDBC桥的方式来连接也很方便。
    现在ODBC中添加一个SQL的数据源,然后在Design框中加入Database控件,点击Database控件的connection属性打开对话框,选择Driver为sun.jdbc.odbc.JdbcOdbcDriver,然后在URL中选择你刚才在ODBC中的数据源名就可以连通了。很方便的!!!
      

  3.   

    DriverManager.getConnection(url,user,pwd);
    可这条语句怎么写啊, 我用ping lgh(我主机的名称)得到的地址是:192.168.123.143  数据库名称是:mydata ,里边有一张叫abc 的表,没有密码。
      

  4.   

    怎么可能没有密码呢,要么有分配给SQL Server单独的用户和密码,要么是用的集成安全认证,就是你登陆到Windows的用户名和密码。
      

  5.   

    DriverManager.getConnection(url,user,pwd);這個沒寫。
      

  6.   

    用户 '(null)' 登录失败。原因: 未与信任 SQL Server 连接相关联。
    明显是用户名和密码问题。
    到EnterpriseManager中Security下建立或查看相关的用户名和密码,
    再用DriverManager.getConnection(url,user,pwd);连接。