java.lang.NumberFormatException:ForInputString;7110332507339“;java.sql.SQLException:索引::4处缺少IN或OUT参数
我得到以下例外情况 1) java.lang.NumberFormatException:ForInputString“7110332507339” 2) java.sql.SQLException:索引::4处缺少IN或OUT参数 即使我在输入时也给出了正确的数据。我已经搜索了很多来解决这个问题,但是仍然得到了一个例外。这是我的代码。带有数据类型的数据库列也附在pic中 有人能给我一个解决方案吗?谢谢java.lang.NumberFormatException:ForInputString;7110332507339“;java.sql.SQLException:索引::4处缺少IN或OUT参数,java,database,oracle,netbeans,Java,Database,Oracle,Netbeans,我得到以下例外情况 1) java.lang.NumberFormatException:ForInputString“7110332507339” 2) java.sql.SQLException:索引::4处缺少IN或OUT参数 即使我在输入时也给出了正确的数据。我已经搜索了很多来解决这个问题,但是仍然得到了一个例外。这是我的代码。带有数据类型的数据库列也附在pic中 有人能给我一个解决方案吗?谢谢 try{ Class.forName("oracle.jdbc.Oracl
try{
Class.forName("oracle.jdbc.OracleDriver");
try (Connection conn =
DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE","hr","123"))
{
String qry1 = "insert into storeStaff
values(?,?,?,?,?,?,?,?,?)";
try {
pstmnt=conn.prepareStatement(qry1);
String EID=employeID.getText();
pstmnt.setString(1,EID);
String ename=name.getText();
pstmnt.setString(2,ename);
String efname=fatherName.getText();
pstmnt.setString(3,efname);
try{ String emcnic=cnic.getText();
int ecnic=Integer.parseInt(emcnic);
pstmnt.setInt(4,ecnic);}catch(Exception q)
{JOptionPane.showMessageDialog(null,q);}
String edob=dob.getText();
pstmnt.setString(5,edob);
String adress=address.getText();
pstmnt.setString(6,adress);
username.setText(EID);
pstmnt.setString(7,EID);
String pwd=password.getText();
pstmnt.setString(8,pwd);
String post=facultyChoice.getItem(facultyChoice.getSelectedIndex());
pstmnt.setString(9,post);
pstmnt.executeQuery();
if(EID!= null && ename!=null
&& efname!=null &&edob!=null && adress!=null && post!=null ){
JOptionPane.showMessageDialog(null, "Added");
}
} catch (SQLException eex)
{JOptionPane.showMessageDialog(null,"Error"+eex);}}
} catch (SQLException exx)
{JOptionPane.showMessageDialog(null,"Error"+exx);} catch
(ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null,"Error"+ex);
}}
改变这个
try{ String emcnic=cnic.getText();
int ecnic=Integer.parseInt(emcnic);
pstmnt.setInt(4,ecnic);}catch(Exception q)
{JOptionPane.showMessageDialog(null,q);}
对此
try{ String emcnic=cnic.getText();
long ecnic=Long.parseLong(emcnic);
pstmnt.setLong(4,ecnic);}catch(Exception q)
{JOptionPane.showMessageDialog(null,q);}
改变这个
try{ String emcnic=cnic.getText();
int ecnic=Integer.parseInt(emcnic);
pstmnt.setInt(4,ecnic);}catch(Exception q)
{JOptionPane.showMessageDialog(null,q);}
对此
try{ String emcnic=cnic.getText();
long ecnic=Long.parseLong(emcnic);
pstmnt.setLong(4,ecnic);}catch(Exception q)
{JOptionPane.showMessageDialog(null,q);}
java.lang.NumberFormatException:ForInputString“7110332507339”:这是因为您的输入值超出范围。由于您使用的是Integer,它的最大值应该是2147483648。要解决这个问题,可以使用Long和BigInteger作为数据类型 java.sql.SQLException:索引::4处缺少IN或OUT参数:这是因为您正在将字符串插入日期类型的列中
String edob=dob.getText();
pstmnt.setString(5,edob);
java.lang.NumberFormatException:ForInputString“7110332507339”:这是因为您的输入值超出范围。由于您使用的是Integer,它的最大值应该是2147483648。要解决这个问题,可以使用Long和BigInteger作为数据类型 java.sql.SQLException:索引::4处缺少IN或OUT参数:这是因为您正在将字符串插入日期类型的列中
String edob=dob.getText();
pstmnt.setString(5,edob);
你能在你的问题中添加数据类型的数据库列吗?在编辑问题@sforsujitThank后添加到图片中。谢谢,我将研究它
7110332507339
-这个值对于int数据类型来说太高了。限制为2147483648
。您必须使用biginger或Long数据类型而不是int。在这里引发异常int ecnic=Integer.parseInt(emcnic)代码>谢谢。我不知道整数的确切限制。。。现在我已经解决了这个问题。t是否可以在问题中添加带有数据类型的数据库列?在编辑问题@sforsujitThank后添加到图片中。谢谢,我将研究它7110332507339
-此值对于int数据类型太高。限制为2147483648
。您必须使用biginger或Long数据类型而不是int。在这里引发异常int ecnic=Integer.parseInt(emcnic)代码>谢谢。我不知道整数的确切限制。。。现在我已经解决了这个问题。t第二个异常是由于外部捕获导致的。它指向cnic的索引4,当您告知int的大小小于我的输入值时,引发异常。不是因为日期。感谢您的帮助。@JAMSHAIDIQBAL感谢您的澄清第二个异常是由于外部捕获。它指向cnic的索引4,当您告诉我int的大小小于我的输入值时,抛出异常。不是因为日期。谢谢你的帮助。@JAMSHAIDIQBAL谢谢你的澄清