大家好,我用jdbc连接sqlserver2000在database explore加入那三个要求的jar包连接成功;
可是我在java文件中用代码连接测试数据库的连接为什么说找不到
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver呢;
在database下能够连接时不是说明jar包没问题啊;我的测试很简单的如下
public static void main(String[] args) {
 PreparedStatement pstmt=null;//用于执行SQL语句
 ResultSet rs=null;//用户保存查询结果集
String sql="select * from news order by newsID desc";
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();

String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=company"; 

String user="sa"; 
String password="sa"; 
try {
Connection conn= DriverManager.getConnection(url,user,password);
pstmt=conn.prepareStatement(sql);//取得prepareStatement对象
rs=pstmt.executeQuery();//执行数据库查询操作,并把数据封装到News对象中 
System.out.println(rs);
} catch (SQLException e) {

e.printStackTrace();
}  }

解决方案 »

  1.   

    sqlserver2000必须要打上补丁sp3以上.
    打上完后去查询分析器查看一下版本.
    要确定所运行的 SQL Server 2000 的版本,请使用查询分析器连接到 SQL Server 2000,然后运行下列代码:
    SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
    运行结果如下: • 产品版本(例如,8.00.534)。 
    • 产品级别(例如,“RTM”或“SP2”)。 
    • 版本(例如,“Standard Edition”)。例如,运行结果可能类似如下所示:
    8.00.534 RTM Standard EditionSqlservr.exe 的版本号 发行版 Sqlservr.exe 
    RTM                   2000.80.194.0 
    SQL Server 2000 SP1   2000.80.384.0 
    SQL Server 2000 SP2   2000.80.534.0 
    SQL Server 2000 SP3   2000.80.760.0 
    SQL Server 2000 SP3a 2000.80.760.0 
    SQL Server 2000 SP4   2000.8.00.2039我上次是因为没有打上补丁,不知道你的问题是不是这样.本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cbynietg/archive/2009/04/18/4090889.aspx
      

  2.   

    public Dbcon()
    {
    try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=java07","sa","jane");
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    你试试这个方法!
      

  3.   

    总感觉Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 这句很别扭
    Class.forName("Demo")是把文件Demo.class保存的Demo这个类的Class对象加载到内存中;  
      Class.forName("Demo").newInstance()是依靠上一句得到的Class对象实例了一个Demo对象,请楼主看清楚