更新查询不起作用

时间:2012-07-11 21:29:47

标签: mysql netbeans

我有一个应该有效的更新查询但由于某种原因它无法正常工作

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 update查询中使用的值

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

所以我相信我使用的是正确的类型,但我无法弄清楚为什么它不会更新。这是一个mysql版本吗?

2 个答案:

答案 0 :(得分:1)

您的查询应该是。

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

year1month1day1mjd1应该是包含适当值的变量(尽管在WHERE子句之前还有一个额外的comm)。

答案 1 :(得分:0)

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

你应该写得更像:

String sql="UPDATE TB_EARTHORIENTATIONPARAMETER_UI SET  YEAR=" +
            year1.toString() + ", month..."
相关问题