javaBean的文件fordb.java(可以生成fordb.class文件)内容如下:
package project3;
import java.sql.*;
import java.util.*;
import java.lang.*;
import java.text.*;
import java.io.*;
public class fordb{
       String conn_str="jdbc:Microsoft:sqlserver://localhost:1433;DatabaseName=stat;";
       String username="sa";
       String password="sa";
       private Connection conn=null;
       private Statement stmt=null;
       ResultSet rs=null;
       public fordb()
       {
          try{
               Class.forName(conn_str);
             }catch(java.lang.ClassNotFoundException e)
             {
               System.err.println(e.getMessage());
             }
       }
       public ResultSet executeQuety(String sql)
       {
          try{
               conn=DriverManager.getConnection(conn_str,username,password);
               stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
               rs=stmt.executeQuery(sql);
             }catch(SQLException ex)
                   {
                     System.err.println(ex.getMessage());
                   }
                    return rs;
      }
      public int executeUpdate(String sql)(此是要引用的操作数据)
      {
         int result=0;
         try
         {
             conn=DriverManager.getConnection(conn_str,username,password);
             stmt=conn.createStatemen (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
             result=stmt.executeUpdate(sql);
         }catch(SQLException ex)
               {
                 System.err.println(ex.getMessage());
               }
            return result;    
        }
        public void close(){
             try{
                 if(conn!=null)
                   conn.close();
                }catch(Exception e){
                       System.out.print(e);
               }
       }
}
操作文件research1.jsp(可以从research.jsp读取数据):
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"  errorPage=""%>
<%request.setCharacterEncoding("gb2312");%>
<jsp:useBean id="qus" scope="session" class="project3.fordb"></jsp:useBean>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body leftmargin="0" topmargin="0"><%
  String sql="";
  String radio1=request.getParameter("radio1");
  String radio2=request.getParameter("radio2");
  String radio3=request.getParameter("radio3");
  sql="INSERT INTO stat(q1,q2,q3) VALUES('"+radio1+"','"+radio2+"','"+radio3+"')";
  int temp=qus.executeUpdate("sql");
  if(radio1==null||radio1.equals("")||radio2==null||radio2.equals("")||radio3==null||radio3.equals(""))
  {
   response.sendRedirect("research.jsp");
  }
  if(temp>0)
  {
   out.println("谢谢您对本网站的支持!!");
  }
%>
<%=temp%>
<%=radio1%>
<%=radio2%>
<%=radio3%>
<%
  out.println("<br>");
%>
<a href="res.jsp">统计结果</a>
</body>
</html>运行过程没有错误.
但是不能把数据写入数据库中.
帮帮小弟!!!找出原因..

解决方案 »

  1.   

    int temp=qus.executeUpdate("sql");
    sql不该带引号啊,不过应该报错啊
      

  2.   

    int temp=qus.executeUpdate(sql);
    加上qus.close();
    试一下
      

  3.   

    回复人: everybody_11() ( ) 信誉:99 
    试一下,不过sql加""也没有报错的.
      

  4.   

    回复人: wsk_228(qing_feng) ( ) 信誉:100 
    不行呀.
    在运行的时输出的temp为0呀.也就是没有操作数据库.但是我不用javaBean来封装就行.
    我觉得应该是:sql="INSERT INTO stat(q1,q2,q3) VALUES('"+radio1+"','"+radio2+"','"+radio3+"')";
      int temp=qus.executeUpdate("sql");
    这里错了.但我找不出了.
    还有人吗??帮帮我...
      

  5.   

    回复人: notruiyi(notruiyi) ( ) 信誉:100 
    research.jsp进口表单错误没有
    <%=radio1%>
    <%=radio2%>
    <%=radio3%>
    这些可以输出值.
    还是多谢..
    帮我看看..
      

  6.   

    应当是sql加引号引起的。
    加了引号这个过程应当是被认为是视图或存储过程,不过控制台应当有错误才对呀。
      

  7.   

    回复人: runbing(帅青蛙) ( ) 信誉:100 
    应当是sql加引号引起的。
    加了引号这个过程应当是被认为是视图或存储过程,不过控制台应当有错误才对呀。但是我把""号去掉也没有反应.
    但我用articleconn.jsp来操作数据库时可以呀:
    <%@ page contentType="text/html; charset=gb2312" import="java.sql.*,java.io.*,java.util.*,java.lang.*" %>
    <%
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
      String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Project";
      String user="sa";
      String password="sa";
      Connection conn=DriverManager.getConnection(url,user,password);
      Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    %>
    (要在research1.jsp修改就行)
    这是我觉的就奇怪的地方了.
    而我在网上找到的例子,调用javaBean的例子也是这样调用的.
    就是读数据不行.
    还是多谢你哦.
    请帮我看看....
      

  8.   

    int temp=qus.executeUpdate(sql);//如果sql加上引号是不会报错的,因为你在bean里面的接受参数也是字符型
    加上qus.close();
    你的数据库名是stat,表名也是stat?
      

  9.   

    int temp=qus.executeUpdate(sql);//如果sql加上引号是不会报错的,因为你在bean里面的接受参数也是字符型,只不过你传入的只是字符串"sql",而不是你要传入的sql="INSERT INTO stat(q1,q2,q3) VALUES('"+radio1+"','"+radio2+"','"+radio3+"')";
      

  10.   

    回复人: wsk_228(qing_feng) ( ) 信誉:100 
    对的..
    这个有问题吗?
      

  11.   

    回复人: wsk_228(qing_feng) ( ) 信誉:100 
    int temp=qus.executeUpdate(sql);//如果sql加上引号是不会报错的,因为你在bean里面的接受参数也是字符型,只不过你传入的只是字符串"sql",而不是你要传入的sql="INSERT INTO stat(q1,q2,q3) VALUES('"+radio1+"','"+radio2+"','"+radio3+"')";但是我把sql引号去掉还是不行.
    我也把数据库号改了还是不行.
    我的程序有地方不对吗?
    ...多谢..能帮我看看吗?
    我找了很久了..
      

  12.   

    打开SQL的事件探查器,看看实际上对SQL的操作语句是什么
      

  13.   

    在int temp=qus.executeUpdate(sql);前先打印一下sql语句里的内容看看。
    还有,在request.getParameter后,最好判断一下接收过来的值是否为null
      

  14.   

    回复人: wsk_228(qing_feng) ( ) 信誉:100 
    我的qq是123278439