java - 获取 ORA-01722 : invalid number error while inserting form data from webpage

标签 java oracle jsp jdbc

将 jsp 表单中的数据插入到 oracle 数据库时出现 ORA-01722 错误。我知道这个错误向我指出我正在尝试在数字数据类型中插入字符串,但问题是一切看起来都很好,但我仍然收到错误

这是我使用的代码。

roomregister.jsp

<%
String roomcategory=request.getParameter("category");
if(roomcategory==null)
{
    response.sendRedirect("categoryrooms.jsp");
    return;
}
//out.println(roomcategory);
%>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(
        function ()
{
    //getRoomsByCategory();
}
        );
    var roomcategory="<%=roomcategory%>";

   /* function f1()
    //{
      //  var nrooms=$("#hdmaxrooms").val()-1;
        //alert(nrooms);
    }*/
    function chooseRoom(roomno)
    {
        $("#txtroomno").val(roomno);
    }

    function roombook()
    {
        var gender="";
        if(document.getElementById("txtmale").checked)
            gender="Male";
          if(document.getElementById("txtfemale").checked)
            gender="Female";
        if(gender=="")
            {
                alert("Please select a gender");
                return ;
            }
        var receiptno=$("#txtreceiptno").val();
        var name=$("#txtname").val();
        var address=$("#txtaddress").val(); 
        var idproof=$("#txtidproof").val();
        var dob=$("#txtdob").val();
        var contact=$("#txtcontact").val();
        var roomno=$("#txtroomno").val();
        var fromdate=$("#txtfromdate").val();
        var todate=$("#txttodate").val();
        var roomcategory=$("#txtroomcategory").val();
        var noofguestname=$("#txtnoofguestname").val();
        var charge=$("#txtcharge").val();
        var purpose=$("#txtpurpose").val();

        var bookingamount=$("#txtbookingamount").val();


        var url="bookrooms.jsp?receiptno="+ receiptno + "&name=" + name + "&address=" + address + "&idproof=" + idproof + "&dob=" + dob + "&gender="+ gender + "&contact=" + contact + "&roomno="
        + roomno + "&fromdate=" + fromdate +"&todate="+ todate +  "&roomcategory=" + roomcategory + "&noofguestname=" + noofguestname +
        "&charge=" + charge + "&purpose=" + purpose + "&bookingamount=" + bookingamount;

          var xhr=new XMLHttpRequest();
                xhr.open("GET",url,true);
                xhr.onreadystatechange=function (){roomBookResponse(xhr);};
                xhr.send();
                //alert(url);

    }

      function roomBookResponse(xhr)
         {
             if(xhr.readyState!=4)
                 return ;
             //getRoomsByCategory();
             $("#diverrors").html(xhr.responseText);
            // alert("xZXZX" + xhr.responseText);
         }

         function getroom()
         {
            var fromdate =$("#txtfromdate").val();
            var todate =$("#txttodate").val();


            var url="roomsforbooking.jsp?fromdate="+ fromdate + "&todate=" + todate + "&category=" + roomcategory ;
                //alert(url);

          var xhr=new XMLHttpRequest();
                xhr.open("GET",url,true);
                xhr.onreadystatechange=function (){getRoomResponse(xhr);};
                xhr.send();
                //alert(url);

         }
          function getRoomResponse(xhr)
         {
             if(xhr.readyState!=4)
                 return ;
            // getRoomsByCategory();
             $("#diverrors").html(xhr.responseText);
            // alert("xZXZX" + xhr.responseText);
         }
</script>

<font color="white">

<div id="divroomsbycategory"></div>




<div id="image" class="image">

<center>
    <table  class="divcenter" width="60%" border="0">
        <tr><td colspan="2" align="center">ROOM BOOKING</td></tr>

         <tr><td colspan="2" align="center"> <div id="diverrors"></div> </td></tr>
         <tr><td><BR>Receipt_No</td><td><BR><input type="text" id="txtreceiptno"/></td></tr>
         <tr><td>Name</td><td><input type="text" id="txtname"/></td></tr>
         <tr><td>Address</td><td><input type="text" id="txtaddress"/></td></tr>
         <tr><td>Id_Proof</td><td><input type="text" id="txtidproof"/></td></tr>
         <tr><td>Date_of_Birth</td><td><input type="text" id="txtdob"/></td></tr>

         <tr><td>Gender</td><td>Male<input type="radio" id="txtmale" value="male" name="gender"/>
         Female<input type="radio" id="txtfemale" value="female" name="gender"/></td></tr>


         <tr><td>Contact</td><td><input type="text" id="txtcontact"/></td></tr>
         <tr><td> Room_No</td><td>
                 <input type="text" id="txtroomno" readonly="readonly"/>
                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;
                 <input type="button" value="GET" onclick="getroom();" class="divbutton"/></td></tr>


         <tr><td>From_Date</td><td><input type="text" id="txtfromdate"/></td></tr>
         <tr><td>TO-date</td><td><input type="text" id="txttodate"/></td></tr>
         <tr><td>Room_Category</td><td><input type="text" id="txtroomcategory"  readonly="readonly"  value="<%=roomcategory%>"/></td></tr>
         <tr><td>No_Of_Guest</td><td><input type="text" id="txtnoofguestname"/></td></tr>
         <tr><td>Charge</td><td><input type="text" id="txtcharge"/></td></tr>
         <tr><td>Purpose</td><td><input type="text" id="txtpurpose"/></td></tr>



         <tr><td>Booking-Amount</td><td><input type="text" id="txtbookingamount"/></td></tr>



         <tr><td colspan="2" align="center"><BR><input type="button" value="SUBMIT" onclick="roombook();" class="divbutton"/></td></tr>
         <tr><td colspan="2" align="center"><div id="divroomsbycategory"></div></td></tr>
    </table>
</center>

</div>  
         </font>    
         <style>
            .divbutton:hover
            {
                border: solid white;
               background-color:  seagreen;
            }
            .divcenter:hover


            {
                 border: solid;
                border-top-color:  white;
                border-bottom-color:  white;
                border-left-color: white;
                border-right-color: white;


            }
            .image
            {
                width: 100%;
                height: 600px;
                background-image: url("images/332.jpg");
            }
        </style>

bookrooms.jsp

<%@page import="utilitiespackage.Date"%>
<%@page import="java.sql.Connection"%>
<%@page import="dbpackage.DBConnector"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="validationspackage.Validations"%>

  <%
    try
    {
String receiptno=request.getParameter("receiptno");
String name=request.getParameter("name");
String address=request.getParameter("address");
String idproof=request.getParameter("idproof");
String dob=request.getParameter("dob");
String gender=request.getParameter("gender");
String contact=request.getParameter("contact");
String roomno=request.getParameter("roomno");
String fromdate=request.getParameter("fromdate");
String todate=request.getParameter("todate");
String roomcategory=request.getParameter("roomcategory");
String noofguestname=request.getParameter("noofguestname");
String charge=request.getParameter("charge");
String purpose=request.getParameter("purpose");

String bookingamount=request.getParameter("bookingamount");

 //Connection con=DBConnector.getConnection(session);

PreparedStatement ps=DBConnector.getPreparedStatement(session, "insert into roomregister values ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
ps.setString(1,receiptno);
ps.setString(2,name);
ps.setString(3,address);
ps.setString(4,idproof);
ps.setString(5,contact);
ps.setString(6,roomno);
ps.setString(7,fromdate);
ps.setString(8,roomcategory);
ps.setString(9,noofguestname);
ps.setString(10,charge);
ps.setString(11,purpose);
ps.setString(12,gender);
ps.setString(13,dob);
ps.setString(14,bookingamount);

Date d1=new Date(fromdate);
Date d2=new Date(todate);
for(;Date.compare(d1, d2)<0;d1.advance())
{
    ps.setString(6, "" + d1);
    ps.executeUpdate();
}




out.println(Validations.setSuccess("Booked"));

//String message=Validations.setSuccess("deleted");
//out.println(message);
    }
    catch(Exception ex)
    {
        System.out.println(ex);
        out.println(Validations.setError(ex));

    }
%>

我的数据库表:

enter image description here

我收到的错误: enter image description here

最佳答案

ps.setString(1,收据号);

这不是一个“数字”字段并且您正在调用 setString 吗?

The documentation对于java.sql.PreparedStatement有这样的说法:

Note: The setter methods (setShort, setString, and so on) for setting IN parameter values must specify types that are compatible with the defined SQL type of the input parameter. For instance, if the IN parameter has SQL type INTEGER, then the method setInt should be used.

关于java - 获取 ORA-01722 : invalid number error while inserting form data from webpage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59063951/

相关文章:

java - 将自己的类设置为 java Hashmap 中的键

php - Yii2 上 Gii 生成器的数据库异常

oracle - unixODBC/Oracle : How do I specify all the datasource info in the connection string ONLY, 并且不在 odbc*.ini 文件中

java - 露天使用和说明

java - Struts 如果带有迭代器标签的标签不起作用

java - 将 Java 编译为 native 代码是否会保护源代码?

java - 如何在 GUI Java 中制作功能区(如 Office 2013 功能区)?

c# - 如何在 C# 中执行类似 "Class<? extends MyClass >"的操作

Oracle不等运算符: ¬=

jsp - 逻辑 :present not working as expected