2017-02-08 211 views
-2

私は、javaとMySQLを使用して従業員給与管理を開発しました。java.sql.SQLexception:パラメータ1に値が指定されていません

私の問題は、性別を更新するとこのエラーが発生することです。

ます。java.sql.SQLException:だから

私は何をしますか、パラメータ1に指定した値なし?ここで

は、更新ボタンの私のコードです:

String value4 = txt_id.getText(); 
    int x = JOptionPane.showConfirmDialog(null, "Are you sure you want to update?","Update Record",JOptionPane.YES_NO_OPTION); 
if(x==0){  
    try{ 
     String value1 = txt_firstname.getText(); 
    String value2 = txt_surname.getText(); 

    String value3 = txt_dob.getText(); 
    String value5 = txt_email.getText(); 
    String value6 = txt_tel.getText(); 
    String value7 = txt_address.getText(); 
    String value8 = txt_dep.getText(); 
    String value9 = txt_add2.getText(); 
    String value10 = txt_apt.getText(); 
    String value11 = txt_pc.getText(); 
    String value12 = txt_design.getText(); 
    String value13 = txt_status.getText(); 
    String value14 = txt_salary.getText(); 
    String value15 = txt_job.getText(); 
    String value16 = txt_doj.getText(); 
    String sql= "update Staff_information set id='" 
      +value4+"',first_name='" 
      +value1+"', surname='" 
      +value2+"', " + "Dob='" 
      +value3+"',Email='" 
      +value5+"',Telephone='" 
      +value6+"'," + "Address='" 
      +value7+"',Department='" 
      +value8+"', Address2 = '" 
      +value9+"', " + "Apartment = '" 
      +value10+"', Post_code ='" 
      +value11+"', " + "Designation ='" 
      +value12+"', Status ='" 
      +value13+"', Salary ='" 
      +value14+"', job_title ='" 
      +value15+"', Date_Hired ='" 
      +value16+"',Gender='"+gender+"', Image=? where id='"+value4+"' "; 
    pst=conn.prepareStatement(sql); 
    pst.execute(); 
    JOptionPane.showMessageDialog(null, "Record Updated"); 
    }catch(Exception e) 
    { JOptionPane.showMessageDialog(null, e); 
    } 
    try{ 

     File file = new File(filename); 
     FileInputStream fis = new FileInputStream(file); 
     byte[] image = new byte[(int) file.length()]; 
     fis.read(image); 

     String sql = "update Staff_information SET Image =? where id ='"+value4+"'"; 
     pst = conn.prepareStatement(sql); 
     pst.setBytes(1, image); 
     pst.executeUpdate(); 
     pst.close(); 

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

    finally { 
     try{ rs.close(); 
     pst.close(); 
     } catch(Exception e){ 
     } 
    } 

} 
+0

ところで、準備されたステートメント機能は、イメージだけでなく、すべてのパラメータで使用する必要があります。 – BackSlash

+0

私の第1行が真か偽であることをplzが確認するか? –

+1

「ここで私はどのような話題を聞くことができますか?」:「デバッグのヘルプを求める質問(...)は、それを再現するのに必要な最短のコードを含める必要があります(..) – Gustave

答えて

0

あなたはあなたの最初のSQLのパラメータを設定する必要があります。

String sql= "update Staff_information set id='" 
      +value4+"',first_name='" 
      +value1+"', surname='" 
      +value2+"', " + "Dob='" 
      +value3+"',Email='" 
      +value5+"',Telephone='" 
      +value6+"'," + "Address='" 
      +value7+"',Department='" 
      +value8+"', Address2 = '" 
      +value9+"', " + "Apartment = '" 
      +value10+"', Post_code ='" 
      +value11+"', " + "Designation ='" 
      +value12+"', Status ='" 
      +value13+"', Salary ='" 
      +value14+"', job_title ='" 
      +value15+"', Date_Hired ='" 
      +value16+"',Gender='"+gender+"', Image=? where id='"+value4+"' "; 
    pst=conn.prepareStatement(sql); 
pst.setBytes(1, somevaluehere);** 

    pst.execute(); 
+0

いいえ、あなたはそれを説明することができます.. –

+0

Image = =?最初のSQL文では、いくつかのパラメータを設定する必要があります。したがって、pst.setBytes(1、somevaluehere)を追加する必要があります。あなたのプログラムが期待している何らかのイメージや何かが値になることがあります – Jeet

+0

私は7行で何かが不足していると思っています。しかし、私は何を知っていませんか? –

関連する問題