2016-05-09 9 views
0

行がデータベースで使用できない場合は、メッセージが必要です(行は在庫なし)。私は、次のコードを試してみてください....エラー!行がmySQLテーブルで使用できないかどうかを確認

//エラー

//コード

try { 

      Connection con = Database.mySqlCon(); 
      String sql = "SELECT count(*) FROM stock WHERE idProduct =?"; 
      PreparedStatement ps = con.prepareStatement(sql); 
      ResultSet rs = ps.executeQuery(); 

      int count = 0; 
      while (rs.next()){ 
       count = count + 1; 
      } 

      if (count == 1) { 

       JOptionPane.showMessageDialog(null, "Item is available in Stock" 
      } else { 
       JOptionPane.showMessageDialog(null, "ID:" + txtS.getText() + "is not available in the Stock please update the Stock"); 

      } 
     } catch (Exception e) { 

      JOptionPane.showMessageDialog(null, e); 
      e.printStackTrace(); 
} 

....

java.sql.SQLException: No value specified for parameter 1 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860) 

..... ..... .... .... 助けてください.....

答えて

1

あなたは?の値を設定していません。 SELECTステートメントで

IDであるとすれば、私はそれがintであると仮定します。

あなたが必要:

Connection con = Database.mySqlCon(); 
String sql = "SELECT count(*) FROM stock WHERE idProduct =?"; 
PreparedStatement ps = con.prepareStatement(sql); 
ps.setInt(1, value); 

ResultSet rs = ps.executeQuery(); 

EDIT

はこれにあなたの方法を変更してみてください:ヘルプ

用マット@

Connection con = Database.mySqlCon(); 
String sql = "SELECT count(*) FROM stock WHERE idProduct =?"; 
PreparedStatement ps = con.prepareStatement(sql); 
ps.setInt(1, value); 

ResultSet rs = ps.executeQuery(); 

if(rs.next()){ 
    JOptionPane.showMessageDialog(null, "Item is available in Stock" 
} 
else { 
    JOptionPane.showMessageDialog(null, "ID:" + txtS.getText() + "is not available in the Stock please update the Stock"); 
} 
+0

... .. –

+0

@MuhammadKashif編集を追加しました。それを試してみて – Matt

+0

あなたの編集は完全には動作しません....... –

0

おかげで、私がすることにより、完璧な回答を得ましたこのコードを使用して......

試し{マット私はより多くの問題私は代わりに、マッサージのテーブルの最初の行を持って、SQLテーブルでは使用できません行のIDを入力すると、@おかげOpsss

  Connection con = Database.mySqlCon(); 
      String sql = "SELECT count(*) FROM stock WHERE idProduct =?"; 
      PreparedStatement ps = con.prepareStatement(sql); 
      ps.setString(1, txtS.getText()); 
      ResultSet rs = ps.executeQuery(); 



      int count = 0; 
      while (rs.next()){ 

       // code update here 

       count = rs.getInt(1); 
       // count = count + 1; 
      } 

      if (count == 1) { 
関連する問題