这是原语句:String SQL="UPDATE chengji SET xueke = '"+Txk.getText()+"',xingming='"+Txm.getText()+"',banji='"+Tbj.getText()+"',zongfen='"+Tzf.getText()+"',xuefen='"+Txf.getText()+"',Where xuehao = '"+Txh.getText()+"'";
哪里有问题????
这是数据库表中截图:
以下是这部分代码:
public void actionPerformed(ActionEvent arg0) {/**/
// TODO Auto-generated method stub
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/gg";
String user = "root";
String password = "123456";
String xuehao=Txh.getText().trim();
String SQL="UPDATE chengji SET xueke = '"+Txk.getText()+"',xingming='"+Txm.getText()+"',banji='"+Tbj.getText()+"',zongfen='"+Tzf.getText()+"',xuefen='"+Txf.getText()+"',Where xuehao = '"+Txh.getText()+"'";
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement();
st.executeUpdate(SQL);
int selectedRow = table.getSelectedRow();//获得选中行的索引
if(selectedRow!= -1) //是否存在选中行
{
//修改指定的值:
tableModel.setValueAt(Txk.getText(), selectedRow, 0);
tableModel.setValueAt(Txh.getText(), selectedRow, 1);
tableModel.setValueAt(Txm.getText(), selectedRow, 2);
tableModel.setValueAt(Tbj.getText(), selectedRow, 3);
tableModel.setValueAt(Tzf.getText(), selectedRow, 4);
tableModel.setValueAt(Txf.getText(), selectedRow, 5);
}
}catch (ClassNotFoundException e2) {
System.out.println("报错"+e2.getMessage());
}
catch (SQLException e1) {
System.out.println("报错"+e1.getMessage());
}
}
});
------解决思路----------------------
把数据库表的设计视图截取下来看看
------解决思路----------------------
将executeUpdate的返回值打印出来看看是不是更新了行
把sql语句打印出来,用其他工具执行一下看看,是不是正确的。
另外说说的这段编码的问题,Connection定义成局部变量,用完了也不关闭,这是要把数据库搞死啊。