帮忙看看这个程序的错误?

gimm667 2004-06-19 08:20:13
if(ae.getSource().equals(jbutton627) )//提交
{
try
{
String v1=jtextfield68.getText().trim();
String v2=jtextfield69.getText().trim();

String v3=jtextfield610.getText().trim();
String v4=jtextfield611.getText().trim();
String modidate=v3 + "-" + v4;
System.out.println(modidate);
String v5=jtextfield612.getText().trim();
String v6=jtextfield613.getText().trim();
String v7=jtextfield614.getText().trim();

ResultSetMetaData meta=rs.getMetaData();
int cols=meta.getColumnCount();
String[] titles=new String [cols];
for(int i=0; i<cols; i++)
{
titles[i]=meta.getColumnName(i+1);
}

rs.updateString(titles[0],v1);

rs.updateString(titles[1],v2);
rs.updateString(titles[2],modidate);

//rs.updateString(titles[4],v5);
//rs.updateString(titles[6],v6);
//rs.updateString(titles[8],v7);
System.out.println(v1);
rs.updateRow();//错误行
System.out.println(v1);
jbutton627.setEnabled(false);

jbutton629.setEnabled(true);
jbutton630.setEnabled(true);
jbutton631.setEnabled(true);
jbutton632.setEnabled(true);

jbutton634.setEnabled(true);

jtextfield68.setEnabled(false);
jtextfield69.setEnabled(false);
jtextfield610.setEnabled(false);
jtextfield611.setEnabled(false);
jtextfield612.setEnabled(false);
jtextfield613.setEnabled(false);
jtextfield614.setEnabled(false);
}catch(SQLException e)
{
e.printStackTrace();
}
}

rs.updateRow();//提示错误在这一行

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]行中有错误
at sun.jdbc.odbc.JdbcOdbcResultSet.setPos(JdbcOdbcResultSet.java:5
at sun.jdbc.odbc.JdbcOdbcResultSet.updateRow(JdbcOdbcResultSet.jav
)
at EMS$ModiEleInfo.actionPerformed(EMS.java:2210)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.j
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
eclipse0016 2004-07-02
  • 打赏
  • 举报
回复
textfield名称真抽象!
Znet 2004-07-02
  • 打赏
  • 举报
回复
import java.awt.*;
import javax.swing.*;
import java.sql.*;

public class Test {
public Test() {
boolean supp = false;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String url =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Test";
Connection conn = DriverManager.getConnection(url);
System.out.println("Connect to Database successful!");

DatabaseMetaData dbmd = conn.getMetaData();
supp =
dbmd.supportsResultSetConcurrency(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
}
catch (Exception e) {
e.printStackTrace();
}

if (supp == true){
System.out.println("Microsoft Access supports rs.updateRow().");
}
else{
System.out.println("Microsoft Access dosn`t support rs.updateRow()!");
}
}

public static void main(String[] args){
new Test();
}
}

上面的代码是个测试程序。
运行它你就可以看到,Access不支持可更新的结果集(ResultSet)。
所以你不能用rs.updateRow();

注:别忘了把Test改成你的数据库的名称。
retfu1 2004-07-02
  • 打赏
  • 举报
回复
是不是你的数据库驱动不支持这种方式
CsdnRob 2004-07-02
  • 打赏
  • 举报
回复
是不是用的数据库连接要没及时关掉造成的,可是另一个界面就没问题?晕死
gimm667 2004-06-19
  • 打赏
  • 举报
回复
是不是用的数据库连接要没及时关掉造成的,可是另一个界面就没问题?晕死

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧