【问题标题】:java.sql.SQLException: Invalid cursor state in my jsp pagejava.sql.SQLException:我的 jsp 页面中的游标状态无效
【发布时间】:2012-06-01 11:09:26
【问题描述】:

我希望创建一个表,其中前 3 列是纯文本,但第 4 列是文本区域列,最后一列是下拉列表列。 这些表单元素中给出的所有输入都将被发送到一个单独的 jsp 页面,在该页面中 iit 将在数据库中更新。 这是我写的代码

    <form name="input" action="UpdateSMCFO.jsp" method="post">

    <table>
    <tr>
    <th>Dist. Code</th>
    <th>Cons. No.</th>
    <th>Consumer Details</th>
    <th>Verification by FO</th>
    <th>Remarks by SO</th>

    </tr>
    <%
    int r=0;
    while (rs.next()) {r++;
                   }
    for(int j=0;j<r;j++)
                   {
    out.println("<TR>");
    for (int i = 0; i < columnCount; i++) {
    if(i>=0 && i<=2)
    {
        out.println("<TD>"+rs.getString(i+1)+"</TD>");
    }
    else if(i==3)
    {
    out.println("<TD><input type=\"text\" name=\"FOVerification\""+String.valueOf(j)+"/></TD>");
    }
    else
    {
        out.println("<TD><select name=\"SORemarks\""+String.valueOf(j)+">");
        out.println("<option value=\"Please Specify\">Please Specify</option>");
        out.println("<option value=\"Genuine Customer\">Genuine Customer</option>");
        out.println("<option value=\"MC\">MC-To be blocked</option>");
        out.println("</select></TD>");
    }
    }              
    out.println("</TR>");

                  }
%>
</table>
 <input type="submit" value="Submit" />

 </form>

我很确定这不是处理表格元素的方法,但这是我能想到的。 请在 jsp 和 html 范围内给我任何想法。 现在,我一周前才开始学习jsp,所以我对这些概念很陌生。

这是堆栈跟踪:

输入异常报告

消息

描述服务器遇到了一个内部错误(),导致它无法完成这个请求。

异常

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Driver Manager] 游标状态无效

【问题讨论】:

  • 我不确定您的具体要求是什么,但我至少可以建议您扔掉您目前正在使用的那本书/教程。它只是教你老学校的做法。将鼠标放在您放置在问题上的[jsp] 标签上方,直到出现黑色信息框,然后单击其中的 info 链接。
  • 我已经发布了堆栈跟踪...请帮我解决这个错误..谢谢
  • 您在字符串中以错误的方式使用双引号,您在使用 '"' 时错过了将 '\' 字符放入字符串中
  • 哦!我不敢相信我是那么愚蠢。太感谢了!但现在我得到了一个不同的错误!也发布它。请帮忙。

标签: jsp jdbc


【解决方案1】:

知道了! 我只是试图用异常的名称来理解它:INvalid cursor state..

所以我的 sql 游标状态在第 34 行无效!

改为:

    while (rs.next()) {

    out.println("<TR>");
    for (int i = 0; i < columnCount; i++) {
    if(i>=0 && i<=2)
    {
        out.println("<TD>"+rs.getString(i+1)+"</TD>");
    }
    else if(i==3)
    {
    out.println("<TD><input type=\"text\" name=\"FOVerification\""+String.valueOf(r)+"/></TD>");
    }
           else if(i==4)
    {
        out.println("<TD><select name=\"SORemarks\""+String.valueOf(r)+">");
        out.println("<option value=\"Please Specify\">Please Specify</option>");
        out.println("<option value=\"Genuine Customer\">Genuine Customer</option>");
        out.println("<option value=\"MC\">MC-To be blocked</option>");
        out.println("</select></TD>");
    }
    }
    out.println("</TR>");
    r++;
                  }

它成功了! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多