存储过程传参,老是报错,各位大大帮忙看看这个传参怎么写?id 和dllname 是两个参数,谢谢!
execute("exec yu @id='" + id + "' , @dllname='"+ dllname + "'");  

解决方案 »

  1.   

    execute('exec yu @id=''' + id + ''' , @dllname='''+ dllname + '''');
      

  2.   


    EXECUTE('exec yu @id=''' + CAST(id AS VARCHAR(10)) + ''' , @dllname=''' + dllname + '''')
      

  3.   


    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 32 in the jsp file: /print1.jsp
    Invalid character constant
    29:  
    30:             // 将对应编号ID是否打印字段改为true          
    31:             sqlstatement  
    32:                     .execute('exec yu @id=''' + CAST(ID AS VARCHAR(10)) + ''' , @dllname=''' + dllname + '''');  
    33:             con.close();  
    34:  
    35:         } catch (Exception e) {  
    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
      

  4.   


    execute('exec yu @id=' +''''+LTRIM( id )+ ''''+,
     '@dllname='+''''+ dllname + '''');
      

  5.   

    如果sql语句中有参数,那么请用【EXEC sp_executesql】,否则报错!
    declare @Sql_Sql nvarchar(2000)      -- Sql执行语句 【Nvarchar】类型很重要set @Sql_Sql='Select @Sql_Return=Sum(AddInVentory) from Fm_MonthEnd'EXEC sp_executesql @Sql_Sql,N'@Sql_Return int output',@Sql_Return OUTPUT --【Nvarchar】类型很重要
      

  6.   


    还是不行呀
    <%@ 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=' +''''+LTRIM( id )+ ''''+,
     '@dllname='+''''+ dllname + ''''); 
                con.close();  
     
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        %>  
        <body>  
        </body>  
    </html>  
      

  7.   

    我用 http://localhost:8080/WebReport/print1.jsp?ID="1"&dllname="2011-01-03" 访问。
      

  8.   

    exec yu @id='id',@dllname='dllname''exec yu @id='id',@dllname='dllname''(' exec yu @id='''+id+''','+'@dllname='''+dllname+'''''')
      

  9.   

    多了个'('exec yu @id='''+id+''',@dllname='''+dllname+'''')
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    exec yu @id='ID',@dllname='DLLNAME'
      

  10.   


    你这样写会报错的,不是要用单点和双点结合用么,你怎么都是单点 '"不是要用这种格式吗?
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 32 in the jsp file: /print1.jsp
    Invalid character constant
    29:  
    30:             // 将对应编号ID是否打印字段改为true          
    31:             sqlstatement  
    32:                     .execute('exec yu @id='''+id+''',@dllname='''+dllname+''''); 
    33:             con.close();  
    34:  
    35:         } catch (Exception e) {  
      

  11.   


    execute('exec yu @id=' + ltrim(@id) + ' , @dllname='''+ @dllname + '''');
      

  12.   

    噢,java的字符要用"
    exec yu @id='ID',@dllname='DLLNAME'
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    (" exec yu @id=' "+ID+" ',@dllname=' "+DLLNAME+" ' ")