2010-02-22 78 views
1

繼續this問題。從RestulSet編輯JTable表

我的問題是,我不能編輯我的JTable。我得到一個異常和Object值,而不是我應該看到的。

我正在使用帶有MS-Access數據庫的ResultSet Table代碼並進行了一些修改。我的代碼可以找到here。我調用rs.updateRow()時遇到錯誤。 java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Error in row

我做了一個谷歌搜索這個錯誤與updateRow()並沒有太多出現。我看到的唯一真正的答案是使用準備好的語句,但我不是使用SQL命令的專業人員。

此外,如果你能告訴我最好的辦法,使其成爲一個GlazedList,所以我可以很容易地過濾。除非您可以提供一些可以輕鬆過濾常規JTable的東西。

+0

好的。我可以很容易地顯示數據庫,但不使用SQL命令編輯它幾乎是不可能的。我需要編輯哪些SQL命令? – twodayslate 2010-02-22 16:38:30

+1

@twodayslate:'UPDATE tableName(columnName1,columnName2等)SET columname2 = column2value WHERE columnName1 = row_value' - 假設columnName1是主鍵列。我認爲問題仍然是您的JDBC驅動程序不支持可更新的ResultSets。 – BobMcGee 2010-02-23 01:23:52

+0

如何獲得支持的驅動程序?在我看到你的答案之前,我做了一個支持編輯表的新TableModle。但它並不反映對數據庫的更改。然而。 resultSet方法是否對沒有SQL命令的表進行更改? – twodayslate 2010-02-23 02:37:07

回答

1

試圖提供更多幫助,因爲最初的解決方案沒有工作100%。

這裏試試信息:Updatable ResultSets來看看如何通過指定參數從Connection創建Statement對象時,讓你的ResultSet更新。我意識到這個選項可能沒有爲你默認設置。如果你的驅動支持這種模式,它應該允許代碼工作。

編輯: 它不一定是驅動程序(儘管如果你想改變它,你將需要一個JAR)。創建表時需要啓用ResultSet.TYPE_SCROLL_SENSITIVE - 驅動程序可能仍然支持此模式。有許多方法可以探究JDBC驅動程序支持的內容,但除非使用像SquirrelSQL Client這樣的GUI來獲取完整功能列表,否則這種方法很難使用。

+0

感謝您的繼續幫助!我將如何更換驅動程序?我目前使用'sun.jdbc.odbc.JdbcOdbcDriver'。我試圖使用'com.pointbase.jdbc.jdbcDriver',但它不起作用。我需要一個罐子?在你給的鏈接中 - 我的程序在ResultSet.TYPE_FORWARD_ONLY處拋出了一個錯誤,所以它必須是造成問題的驅動程序? – twodayslate 2010-02-23 02:52:31

+0

@twodayslate:請參閱編輯。 – BobMcGee 2010-02-23 03:26:46

+0

當我將其更改爲SENSITIVE時,我仍然收到行中的錯誤。當你的代碼工作時,你使用了什麼驅動程序?在這個例子中,他們使用com.pointbase.jdbc.jdbcDriver,但我找不到MS-Access的jar。 – twodayslate 2010-02-23 03:52:41

1

我使用ResultSet表代碼

在網上搜索一個ResultSetTableModel的一個更好的例子。我相信你會發現一個已經實現了setValueAt(...)方法。或者另一種方法是將數據從ResultSet複製到DefaultTableModel,然後您可以編輯它沒有問題。

除非您可以輕鬆地爲我提供常規JTables排序。

您是否閱讀過JTable API,並遵循指向「如何使用表」的Swing教程鏈接,該教程包含排序的工作示例,因爲排序是JDK的默認部分。

+0

哎呦。我的意思是過濾多個值。 DefaultTableModel方法會使數據庫保持最新狀態嗎? 我仍然得到與谷歌搜索setValueAt – twodayslate 2010-02-22 04:27:27

+1

錯誤本教程顯示如何做過濾。不,DefaultTableModel不會自動更新數據庫(但您的當前模型也不會)。只需將一個TableModelListener添加到模型中,您就可以自己更新數據庫。否則,我認爲你需要獲得第三方包來支持這個。 – camickr 2010-02-22 05:02:46

+0

你知道任何可以完成所有這一切的第三方軟件包嗎? – twodayslate 2010-02-22 05:08:36