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";

其中year1, month1, day1,mjd1应该是包含适当值的变量(WHERE尽管在子句之前有一个额外的 comm)。

于 2012-07-11T21:33:23.303 回答
0

系统抱怨你给它一个字符串(“year1”),而不是它期望的整数值(例如 2012)。

你应该这样写:

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