0

*例外 : *

       java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in       UPDATE statement

コードは次のとおりです。

    String Name = txtName.getText();`
    String Email = txtEmail.getText();
    String Mobile = txtMobile.getText();
    String Address = txtAddress.getText();
    String Dob = txtDob.getText();

試す {

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

            connection = DriverManager.getConnection("jdbc:odbc:NewPData");
            String query = "update Table1 set Name='" + Name + "' , Email='" + Email + "' , Mobile=" + Mobile + ", Address= '" + Address

+ "', DOB=" +Dob + ", ここで ID=" + Update; PreparedStatement ps_Statement = connection.prepareStatement(クエリ); ps_Statement.executeUpdate(); JOptionPane.showMessageDialog(panelID, "レコードが正常に更新されました"); connection.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }

4

2 に答える 2

0

where句の前に。があります。また、生年月日である場合は、DOBを一重引用符で囲む必要があります。そして、あなたはモバイルが整数であると確信していますか?

"update Table1 set Name='" + Name + "' , Email='" + Email + "' , Mobile=" + Mobile + ", Address= '" + Address
+ "', DOB='" +Dob + "' where ID=" + Update;

しかしとにかく、引数を渡すことでPreparedStatementを使用することを検討してください。使用しているSQLは、SQLインジェクション攻撃に対して脆弱です。

于 2012-12-04T09:15:58.520 に答える
0

代わりにこれを試してください:

String yourFormat = "dd-MMM-yy";
Date yourDateVariable = null;

SimpleDateFormat sdf = new SimpleDateFormat(yourFormat);

try {
    yourDateVariable = sdf.parse(Dob);
} catch ( Exception ex ) {
    // Do something
}

// Continue your code<code>
于 2012-12-04T11:35:22.657 に答える