2017-03-29 1 views
0
String sql2="if not exists(select * FROM stock where productCode=?)\n" + 
        "Begin\n" + 
        "insert into stock " 
        + "(productName,quantity,currentQuantity,price,companyName,categoryName,productCode) " 
        + "values(?,?,?,?,?,?,?)\n" + 
        "End"; 
      PreparedStatement pst2 = con.prepareStatement(sql2); 
      pst2.setString(1,productCodeTextField.getText()); 
      pst2.setString(2,productNameTextField.getText()); 
      pst2.setString(3,quantityTextField.getText()); 
      pst2.setString(4,quantityTextField.getText()); 
      pst2.setString(5,priceTextField.getText()); 
      pst2.setString(6, (String) companyNameJComboBox.getSelectedItem()); 
      pst2.setString(7, (String) categoryNameJComboBox.getSelectedItem()); 
      pst2.setString(8,productCodeTextField.getText()); 
      int x=pst2.executeUpdate(); 
      if(x!=0){ 
       productCodeTextField.setText(""); 
       productNameTextField.setText(""); 
       quantityTextField.setText(""); 
       priceTextField.setText(""); 
       JOptionPane.showMessageDialog(null,"Product entered");  
      }else{ 
       JOptionPane.showMessageDialog(null,"Product already exists"); 
      } 

삽입하기 전에 기존 제품을 성공적으로 확인할 수 있지만 실행 된 쿼리를 기반으로 올바른 메시지를 채울 수 없습니다. . executeUpdate는 삽입이 완료되지 않은 경우에도 항상 일부 값을 반환합니다. 이 문제를 해결하는 방법.행이 이미 존재하는지 확인하십시오. 그렇지 않으면 행을 삽입하십시오. 메시지를 표시하십시오.

+0

mysql과 sql-server는 두 개의 서로 다른 rdbms입니다. 올바른 태그를 지정하십시오. – Ravi

답변

1

당신을 위해 일 수있는 쉬운 해결책이있다 :

  1. 던져 멀리 다음과 같은 항목이 이미

  2. 재 작성 SQL2를 존재하는지 여부를 확인하는 첫 번째 쿼리가 :

    INSERT INTO stock 
    (productCode, productName, quantity, price, companyName, categoryName) 
    VALUES (?,?,?,?,?,?) 
    WHERE NOT EXISTS 
        (SELECT * FROM stock WHERE productCode = ?) 
    
  3. 추가 : pst.setString(7, productCodeTextField.getText());

  4. executeUpdate()은 쿼리의 영향을받는 행 수를 나타내는 int을 반환합니다. 이 변수를 사용하여 행이 추가되었는지 판별하십시오. 변수! = 0 인 경우 성공 메시지를 표시합니다.

+0

"ignore"라는 키워드를 추가 할 때 "into"키워드 근처에 잘못된 구문이 표시됩니다. –

+0

@MohitJoshi 입력 한 전체 문자열을 붙여 넣으십시오. 오류가 발생했습니다. – Coop

+0

insert into 스톡 (productsCode, productName, quantity, price, companyName, categoryName) values ​​(?,?,?,?,?,?) –

관련 문제