2012-07-11 123 views
0

我有shouldBe这样一个更新查询工作,但由于某种原因,它不工作更新查询不工作

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

我从我的sql更新查询中检索从jTable中使用的值降低的方式

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

所以我相信我使用正确的类型,但我不知道为什么它不会更新。这是一个MySQL版本的东西?

+2

您没有向我们展示任何将'year1'的值替换为查询字符串的代码... – 2012-07-11 21:32:43

+0

它看起来并不像您实际传递year1(或其中任何一个值)的值问题)到sql查询字符串,只是变量的名称。 – davethegr8 2012-07-11 21:33:18

+0

@OliCharlesworth我怀疑这是因为没有任何 – 2012-07-11 21:33:20

回答

1

您的查询应该是这样的。

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

year1month1day1mjd1应包含适当的值的变量(还有就是WHERE子句之前一个额外的通讯虽然)。

+0

非常感谢你们......工作得像一个魅力 – rambokayambo 2012-07-11 22:22:01

0

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

你应该写这更像是:

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