<%@page contentType="text/html;charset=gb2312" language="java" %>
<%@page import="java.sql.*,java.io.*"%>
<%@page isErrorPage ="True"%>
<html>
<head><title>以下是从MS SQL SERVER数据库中读取数据的列子</title></head>
<body>以下是从book表中读取的数据<hr>
<table border=1>
<tr><td>序 + 号</td><td>书 + 名</td><td>出版社</td><td>价 格</td></tr>
<%!
  String trans(String chi)
  {
  String result=null;
  byte temp[];
  try{
  temp=chi.getBytes("iso-8859-1");
  result=new String(temp);
  }
  catch(UnsupportedEncodingException e){
  System.out.println(e.toString());
  }
  return result;
  }
        %>
<%
String  classforname="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String  serverDB="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev";
String  user="uesr=sa";  
String  pwd ="password=sa";      
try{  
try{
Class.forName(classforname).newInstance();  
}
catch(ClassNotFoundException e)
{
out.println("ClassNotFoundException:" + e.getMessage());
//执行时出现
//ClassNotFoundException:com.microsoft.jdbc.sqlserver.SQLServerDriver 
}
Connection con=java.sql.DriverManager.getConnection(serverDB,user,pwd); 
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from book");
while(rst.next()){
out.println("<tr>");
out.println("<td>"+trans(rst.getString("bookId"))+"</td>");
out.println("<td>"+trans(rst.getString("bookName"))+"</td>");
out.println("<td>"+trans(rst.getString("publisher"))+"</td>");
out.println("<td>"+rst.getFloat("price")+"</td>");
out.println("</tr>");
}
rst.close();
stmt.close();
con.close(); }catch(Exception  e){  
out.println("open table :" + e.getMessage());
//执行时出现
//open table :No suitable driver 
}
%>
</table>
</body>
</html>

解决方案 »

  1.   

    你要把SQL Server的JDBC驱动加到你的WEB项目的web-inf/lib目录下
      

  2.   

    把ojdbc.jar放到<java_home>/jre/lib/ext/下面
      

  3.   

    SQL-SERVER的驱动没放,有三个文件,放lib目录下
      

  4.   

    JDBC驱动没弄好
    把JDBC驱动(3个jar文件)加到你的/lib目录下就可以
    或者把JDBC驱动(3个jar文件)加到CLASSPATH
    也可以
      

  5.   

    web-inf/lib的目录在什么目录下?是在当前目录下吗?
    我只是在学写程序,有谁能说清楚一点吗?
    另外我用ODBC方式,在系统DNS中添加一个数据源,测试成功,
    但是在用户DNS中添加一个数据源,为何测试不成功?
      

  6.   

    什么exception?楼上的各位有点像神仙!
      

  7.   

    web-inf/lib的目录当然是在当前项目的根目录下,驱动你放在应用服务器根目录下的/lib下。
      

  8.   

    (1)web-inf/lib的目录当然是在当前项目的根目录下.
       web-inf/lib是人工建立的吗?我只是写了如题的一个小程序,是否一定要有web-inf/lib目录?
    (2)JDBC驱动没弄好.JDBC的驱动哪里有下载啊!我从别的机器上copy 了 JDBC的驱动把JDBC驱动(3个jar文件)加到CLASSPATH还是不行!
     JDBC驱动到底怎么安装呢?
      

  9.   

    把ojdbc.jar放到<java_home>/jre/lib/ext/下面
    -------------------------------------------------
    需要吗?  JDBC驱动到底怎么安装呢?
    --------------------------------
    把JDBC驱动(3个jar文件)放在%CATALINA_HOME%( Tomcat安装目录) /common/lib下
      

  10.   

    下载sql for jdbc的驱动也安装了,
    仍出现如下error:
    出现如下Error:  open table :[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    帮帮手吧,实在不知如何解决,上面的操作都照做了,还是不行,根据提示驱动好象是对的,但是....
      

  11.   

    jspdev数据库里有book这个表吗?
      

  12.   

    (1)jspdev数据库里有book这个表吗?
    当然有了,
    另外我用ODBC方式,在系统DNS中添加一个数据源,测试成功,
    但是在用户DNS中添加一个数据源,为何测试不成功?
    (2)可能是端口1433的问题。
    用netstate -a 查看没有发现1433端口,
      

  13.   

    SqlServer2000的补丁没打,需要打到sp3(好像是)以上才行,去sql的网站下个补丁吧,加了补丁才支持jdbc的。
      

  14.   

    这个正解可能性大。
    SqlServer2000的补丁没打,需要打到sp3(好像是)以上才行,去sql的网站下个补丁吧,加了补丁才支持jdbc的。
      

  15.   

    这个正解可能性大。
    SqlServer2000的补丁没打,需要打到sp3(好像是)以上才行,去sql的网站下个补丁吧,加了补丁才支持jdbc的。
    同意楼上的楼上说法!
      

  16.   

    yzwanghui(爱我不会永远) ;slllx(一生有你) ;shinesunbj() 
    这三个人的回复怎么一模一样,而且同时18号.楼主不厚道!!
      

  17.   

    yzwanghui(爱我不会永远) ;slllx(一生有你) ;shinesunbj() 
    这三个人的回复怎么一模一样,而且同时18号.楼主不厚道!!楼上回答的差以,我的答案和楼上的一样,我也就没必要再重新写过,我们回答的一样,这正说明楼主出现这种问题的可能性就大啊