2012-07-11 118 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..."