0

動作するはずの更新クエリがありますが、何らかの理由で動作しません

String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI SET  YEAR='year1',  MONTH='month1',  DAY='day1',  MJD='mjd1',  WHERE (EOPID=1)";

次のエラーが発生します

Incorrect integer value 'year1' for column YEAR at row1

私のテーブルは次の列とそのタイプで構成されています

| EOPID         | int(11) | NO   | PRI | NULL    | auto_increment |
| YEAR          | int(11) | YES  |     | NULL    |                |
| MONTH         | int(11) | YES  |     | NULL    |                |
| DAY           | int(11) | YES  |     | NULL    |                |
| MJD           | int(11) | YES  |     | NULL    |                |

次の方法で、jTableからSQL更新クエリで使用する値を取得します

Object year=model.getValueAt(row, column);
        years=year.toString();
        year1=Integer.parseInt(years);

正しいタイプを使用していると思いますが、なぜ更新されないのかわかりません。これはmysqlバージョンのものですか?

4

2 に答える 2

1

クエリは次のようになります。

String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI 
            SET  
                YEAR="+year1+",  
                MONTH="+month1+",  
                DAY="+day1+",  
                MJD="+mjd1+"  
            WHERE 
                EOPID=1";

ここyear1month1、、、、は適切な値を含む変数day1である必要があります(ただし、句mjd1の前に余分な通信があります)。WHERE

于 2012-07-11T21:33:23.303 に答える
0

システムは、期待する整数値(2012など)ではなく、STRING( "year1")を指定していると文句を言っています。

あなたはこれをもっと次のように書くべきです:

String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI SET  YEAR=" +
            year1.toString() + ", month..."
于 2012-07-11T21:33:15.053 に答える