/*
* 将表格里的修改内容,全部保存到数据库里面
*/
table.getCellEditor().stopCellEditing(); //先结束单元格的编辑
Vector <Object> v_1 = new Vector<Object>();
for(int a=0; a<table.getRowCount(); a++) //循环复制表格中数据到向量集V_1
for(int b=0; b<table.getColumnCount(); b++)
v_1.add(tableModel.getValueAt(a, b));
int n=0; //定义变量n判断数据库中受到影响的数据表行数
Iterator<Object> its = v_1.iterator();
while(its.hasNext()){ //循环遍历向量集,并将数据保存到数据库
Connection conn = null;
PreparedStatement preStat = null;
try{
conn = com.dao.DBUtils.getConnection();
String sql = "insert into 客房信息表 values ( ? , ? , ? , ? , ? , ? , ? , ? )";
preStat = conn.prepareStatement(sql);
preStat.setObject(1, its.next()); //对应数据表字段 员工编号 varchar(12)
preStat.setObject(2, its.next()); //对应数据表字段 员工姓名 varchar(12)
preStat.setObject(3, its.next()); //对应数据表字段 身份证 varchar(12)
preStat.setObject(4, its.next()); //对应数据表字段 性别 char(2)
preStat.setObject(5, its.next()); //对应数据表字段 联系电话 varchar(11)
preStat.setObject(6, its.next()); //对应数据表字段 入职时间 datetime
preStat.setObject(7, its.next()); //对应数据表字段 职位 char(8)
preStat.setObject(8, its.next()); //对应数据表字段 年龄 int
preStat.executeUpdate();
n=n+1;
tableModel.removeRow(0); //操作完成后,删除表格中的数据
}catch(Exception e1){
e1.printStackTrace();
}finally{
DBUtils.close(null, preStat, conn);
}
}
附数据表:附错误类型:
com.microsoft.sqlserver.jdbc.SQLServerException: 列名或所提供值的数目与表定义不匹配。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1522)
debug
最好在insert语句的表后加上具体列
@小光: 插入错了表了,我那个擦啊!我TM苦苦思索了两天,真的是两天啊!我真是眼瞎了,菜啊!、、、感谢兄弟提醒。
@衿沫青冥: 嗯。。没事
他这个debug信息说得很明显啊 下次注意点就好了