2016-04-06 381 views
0
String s1 = PasswordText4.getText(); 
    String s2 = ConfirmText4.getText(); 
    String s3 = NameText4.getText(); 
    String s4 = UsernameText4.getText(); 
    String s5 = jLabel16.getText(); 

    if (PasswordText4.getText().equals(ConfirmText4.getText()) && s1.length() != 0 && s3.length() != 0 && s1.length() >= 4 && s2.length() >= 4) { 
     try { 
      String sql 
        = "BEGIN" 
        + "UPDATE LOGIN SET USERNAME = ?, PASSWORD = ?, NAME = ?" 
        + "WHERE USERNAME = ?;" 
        + "commit;" 
        + "END;"; 
      CallableStatement cstmt = conn.prepareCall(sql); 
      cstmt.setString(1, UsernameText4.getText()); 
      cstmt.setString(2, PasswordText4.getText()); 
      cstmt.setString(3, NameText4.getText()); 
      cstmt.setString(4, jLabel16.getText()); 

      //System.out.println(jLabel16.getText()); 

      int dialogButton = JOptionPane.YES_NO_OPTION; 
      int dialogResult = JOptionPane.showConfirmDialog(null, "Are you sure you want to update?", "Warning", dialogButton); 
      if (dialogResult == JOptionPane.YES_OPTION) { 
       cstmt.execute(); 
       JOptionPane.showMessageDialog(null, "Information Updated"); 
       jLabel15.setText(NameText4.getText()); 
       jLabel16.setText(UsernameText4.getText()); 
       jLabel17.setText(PasswordText4.getText()); 
      } 

     } catch (Exception e) { 
      JOptionPane.showMessageDialog(null, e); 
     } 
    } 

このコードには何が問題がありますか?データを更新しようとすると、無効なSQL型:無効なSQLタイプ:sqlKind = UNINITIALIZEDエラーが表示されます

sqlKind = UNINITIALIZEDエラーが表示されます。

問題の解決方法をお手伝いしてください。

お返事ありがとうございます。

+2

あなたはあなたのクエリの間にスペースを追加するために不足していますあなたの質問は実際には 'BEGINUPDATE'で始まります。あなたの' sql'文字列を印刷して何が間違っているのかを検討してください。 – Berger

答えて

1

あなたが同様に何かを行うことができ、

String sql = "UPDATE LOGIN SET USERNAME = ?, PASSWORD = ?, NAME = ? WHERE USERNAME = ?" 

PreparedStatement preparedStatement = dbConnection.prepareStatement(sql); 
preparedStatement .setString(1, UsernameText4.getText()); 
preparedStatement .setString(2, PasswordText4.getText()); 
preparedStatement .setString(3, NameText4.getText()); 
preparedStatement .setString(4, jLabel16.getText()); 

preparedStatement .executeUpdate(); 
.... 
dbConnection.commit(); 
1

Bergerにより、たとえば、クエリの部品の間にスペースを追加する必要があり、権利である:

String sql = " BEGIN " 
      + " UPDATE LOGIN SET USERNAME = ?, PASSWORD = ?, NAME = ? " 
      + " WHERE USERNAME = ?; " 
      + " commit; " 
      + " END;" ; 
関連する問題