已经引入了连接数据库的三个包
报错  Exception in thread "main" java.lang.NoSuchMethodError: com.microsoft.util.UtilDebug.setPrintWriter(Ljava/io/PrintWriter;)V
at com.microsoft.jdbc.base.BaseDriver.setupDebugging(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at jc.sql.Demo6.<init>(Demo6.java:48)   
at jc.sql.Demo6.main(Demo6.java:24)
源代码
package jc.sql;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.awt.*;
public class Demo6 extends JFrame { /**
 * @param args
 */
JPanel jp1,jp2;
JLabel jl=null;
JTextField jtf=null;
//JScrollPane jcp=null;
Vector rowData,columnNames,row;
    JTable jt=null;
    JScrollPane jsp=null;
JButton jb1,jb2,jb3,jb4;
Connection ct=null;
PreparedStatement pt=null;
ResultSet rs=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
       Demo6 dm=new Demo6();
}
public Demo6()
{
jl=new JLabel("用户名");
jp1=new JPanel();

jtf=new JTextField(10);
jb1=new JButton("搜索");
jp1.add(jl);
jp1.add(jtf);
jp1.add(jb1);
 columnNames=new Vector();
   columnNames.add("工号");
   columnNames.add("姓名");
   columnNames.add("工作");
   columnNames.add("编号");
   columnNames.add("日期");
   columnNames.add("工资");
   try {
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   //下行提示错误
  ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jc","sa","123456");
   System.out.println("OK");
//    pt=ct.prepareStatement("select * from emp");
//    
//    rs=pt.executeQuery();
//    
//    while(rs.next())
//    {
//    row=new Vector();
//    row.add(rs.getInt(1)+"");
//    row.add(rs.getString(2));
//    row.add(rs.getString(3));
//    row.add(rs.getInt(4)+"");
//    row.add(rs.getString(5));
//    row.add(rs.getInt(6)+"");
//   
//    }
   } catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
   finally{
   try {
if(rs!=null)
   rs.close();
   if(pt!=null)
   pt.close();
   if(ct!=null)
   ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
   }
   
   
   rowData=new Vector();
   rowData.add(row);
   
   jt=new JTable(rowData,columnNames);
   
   jsp=new JScrollPane(jt);
  
   //添加显示内容界面
   this.add(jsp);
 
   
   jb2=new JButton("添加");
   jb3=new JButton("删除");
   jb4=new JButton("修改");
   
   jp2=new JPanel();
   jp2.add(jb2);
   jp2.add(jb3);
   jp2.add(jb4);
   this.add(jp2,"South");
//添加搜索控件
this.add(jp1,"North");
this.setSize(400,300);
this.setLocation(200,200);
this.setVisible(true);

}

}

解决方案 »

  1.   

    看报错应当是没有setPrintWriter方法 可能是驱动错了吧
      

  2.   

    具体点,猜想是不是和SQL server 2000的补丁有关
      

  3.   

    把sql server 2000打上sp3以上的补丁
      

  4.   

     问题解决了,不是补丁,而是驱动有问题,那3个jar包 被破坏了,换了3个jar包就可以了
      

  5.   

    我把
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    改成Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    把ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jc","sa","123456");
    改成 ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=jc","sa","123456");
    结果输出Ok~~
    但是程序的功能没有实现~