源代码如下: import java.sql.*; public class Test { 
public Test() { 
} public static void main(String args[]) { 
try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
String user = "sa"; 
String password = " "; 
Connection conn = DriverManager.getConnection(url, user, password); 
Statement stmt = conn.createStatement(); 
String sql = "select * from dbo.authors"; 
ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { 
System.out.println("TestName:" + rs.getString(2)); 

rs.close(); 
stmt.close(); 
conn.close(); 
} catch (Exception ex) { 
ex.printStackTrace(); 
System.out.println("-------"); 
System.err.println(ex.getMessage()); 



SQL Server2000安装完成,并且启动。三个连接包也已经导入。异常如下: 
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source) 
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source) 
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:525) 
at java.sql.DriverManager.getConnection(DriverManager.java:171) 
at onLine.struts.Test.main(Test.java:14) 请达人赐教到底是哪里出了问题,谢谢了  
 

解决方案 »

  1.   

    可能是驱动不对吧,如果是数据库的问题,会提示连接不上的,SQL Server2000必须打上SP4补丁
      

  2.   

    数据库必须打sp3以上补丁,直接打sp4就行了,登录需要混合模式。
    测试通过,代码没问题结果如下
    TestName:White
    TestName:Green
    TestName:Carson
    TestName:O'Leary
    TestName:Straight
    TestName:Smith
    TestName:Bennet
    TestName:Dull
    TestName:Gringlesby
    TestName:Locksley
    TestName:Greene
    TestName:Blotchet-Halls
    TestName:Yokomoto
    TestName:del Castillo
    TestName:DeFrance
    TestName:Stringer
    TestName:MacFeather
    TestName:Karsen
    TestName:Panteley
    TestName:Hunter
    TestName:McBadden
    TestName:Ringer
    TestName:Ringer
      

  3.   

    你用Javaserver page做吧?
    代码如下:<%@ page import="java.sql.*"%>
    <%
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
    //这两个中的间距不能为空,很重要哦? 
    String user = "sa";  
    String password = "";  
    Connection conn = DriverManager.getConnection(url, user, password);  String sql = "select * from dbo.authors";  
    PreparedStatement pds=con.prepareStatement(sql);ResultSet rs = stmt.executeQuery();  while (rs.next()) {  
    string str1=rs.getString("au_id");
    string str2=rs.getString("au_lname"); 
    out.println(str1+" "+str2+"<br />"); 
    }  
    catch (Exception ex) {  
    ex.printStackTrace();  
    System.out.println("-------");  
    System.err.println(ex.getMessage());  
    }  
    %>试试看吧...
      

  4.   

    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="java.sql.*"%>
    <html>
    <body bgcolor="#ffffff">
      <%
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
     String url="jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=pubs";
     String name="sa";
     String password="";
     Connection con=DriverManager.getConnection(url,name,password); Statement stm=con.createStatement();
     String str="select * from authors";
     ResultSet rs=stm.executeQuery(str);
     while(rs.next()){
       String str1=rs.getString("au_id");
       String str2=rs.getString("au_lname");
       out.println(str1+"  "+str2+"<br />");
     }
      %>
    </body>
    </html>刚才马上去做了下,这个是正确的代码;供你参考下;