2010-02-22 44 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