在java eclipse中将nvarchar值“XX”转换为数据类型int.时,转换失败

在java eclipse中将nvarchar值“XX”转换为数据类型int.时,转换失败,java,sql-server,eclipse,Java,Sql Server,Eclipse,将nvarchar值“XX”转换为数据类型int时转换失败。我有这些错误,不知道如何处理。请帮帮我。谢谢D btnNewButton_3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String value1=textField_7.getText();

将nvarchar值“XX”转换为数据类型int时转换失败。我有这些错误,不知道如何处理。请帮帮我。谢谢D

   btnNewButton_3.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    String value1=textField_7.getText();
                     try{

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                         String connectionURL = "jdbc:sqlserver://;Database='';user='';password='';";
                         Connection con = DriverManager.getConnection(connectionURL);
                       PreparedStatement pst =null;
                            //Statement stmt=con.createStatement();

       //PreparedStatement pst=con.prepareStatement("select * from inventory where Id=? or Name=? ");
                        String sql ="select * from inventory where Id=? or Name=? ";
                        pst=con.prepareStatement(sql);
                        pst.setString(1, textField_7.getText());
                        pst.setString(2, textField_7.getText());


                     ResultSet rs = pst.executeQuery();
                     if(value1.equals("")){
                          reloadData();
                          model.fireTableDataChanged();
                          JOptionPane.showMessageDialog(null,"Please Enter a Name or Id of the Item","ERROR",JOptionPane.ERROR_MESSAGE);

                      }else{  


                                  table.setModel(DbUtils.resultSetToTableModel(rs));
                  }

                           }


                     catch(Exception e1){e1.printStackTrace();}

                }


            });

尝试从更改SQL语句

select * from inventory where Id=? or Name=?


问题是,您使用相同的文本字段来比较Id和Name,因此,如果要在文本字段中输入Rohan,它将尝试将其转换为INT以比较Id,在这种情况下,该语句将失败。

尝试将SQL语句从

select * from inventory where Id=? or Name=?


问题是,您使用相同的文本字段来比较Id和Name,因此如果您在文本字段中输入Rohan,它将尝试将其转换为INT以比较Id,在这种情况下,语句将失败。

假设您的Id列是整数,出现此错误是因为您试图为其分配字符串。如果是,请将文本字段解析为int,然后使用


假设您的Id列是整数,则会出现此错误,因为您试图为其分配一个字符串。如果是,请将文本字段解析为int,然后使用

pst.setInt(1, parsedInt);