日期:2014-05-17  浏览次数:20622 次

存储过程传参问题?
我做了一个JSP页面,当.execute("exec yu @id='" + ID + "', @dllname='"+ dllname + "'");这句直接赋值没有问题,但传参没有结果,是不是哪里写得不对呀,请指教,谢谢!
Java code
<%@ page language="java" contentType="text/html; charset=gb2312" 
    pageEncoding="gb2312"%>  
<%@ page import="java.sql.Connection"%>  
<%@ page import="java.sql.DriverManager"%>  
<%@ page import="java.sql.Statement"%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
        <title>执行打印记录的信息</title>  
    </head>  
    <%  
        //获取当前页编号ID的值  
        String ID = (String) request.getParameter("ID");
        String dllname= (String) request.getParameter("dllname");
        //定义您的驱动器及数据库的URL、用户名和密码     
        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  
        String url = "jdbc:sqlserver://192.168.0.2:1433;databaseName=klrq";  
        String username = "SA";  
        String password = "GUOOUG";  
        Connection con = null;  
        try {  
            // 创建数据库连接    
            Class.forName(driverName);  
            con = DriverManager.getConnection(url, username, password);  
 
            // 创建数据库执行语句    
            Statement sqlstatement = con.createStatement();  
 
            // 将对应编号ID是否打印字段改为true          
            sqlstatement  
                    .execute("exec yu @id='" + ID + "', @dllname='"+ dllname + "'");  
            con.close();  
 
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    %>  
    <body>  
    </body>  
</html>  


------解决方案--------------------
你直接拼接成一段store procedure 语句,在里面执行吧,从declare ..begin ...end
另外
http://localhost:8080/WebReport/print1.jsp?id=1&dllname='2011-03-05' 访问地址,这样写可以吗?
不行。要去掉单引号