NetBeans里写的一个Java的JFrame窗体的按钮事件无法在SQL中插入一条新的记录
运行以后,输入相关信息后提示“注册成功”,但是返回登录对话框后根本无法以“注册成功”的用户信息登录,数据库中也没有添加任何新条目,在JCreator里写的另一个测试程序(...
运行以后,输入相关信息后提示“注册成功”,但是返回登录对话框后根本无法以“注册成功”的用户信息登录,数据库中也没有添加任何新条目,在JCreator里写的另一个测试程序(429628412 . h t m l)把写错的SQL语句一改就能添加了,这里却怎么也添加不了。为何啊?求助,谢谢各位。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Connection conn;
Statement sql;
ResultSet rs1;
Loginid=jTextField1.getText();
username=jTextField2.getText();
paswd=new String(jPasswordField1.getPassword());
aspaswd=new String(jPasswordField2.getPassword());
if(Loginid==null||Loginid.equals("")||username==null||username.equals("")||paswd==null||paswd.equals("")||aspaswd==null||aspaswd.equals("")){
JOptionPane.showMessageDialog(null,"用户信息不能为空","错误",JOptionPane.ERROR_MESSAGE);
return; //代码执行到此处终止
}
if(paswd.equals(aspaswd)==false){
JOptionPane.showMessageDialog(null,"错误,两次密码不一致。");
jPasswordField1.setText(null);
jPasswordField2.setText(null);
return;//代码执行到此处终止
}
String driver="sun.jdbc.odbc.JdbcOdbcDriver";//"com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:odbc:BooksManage";//"jdbc:sqlserver://localhost:1433;DatabaseName=book";
try{
Class.forName(driver);
}catch(ClassNotFoundException c){ }
try{
conn=DriverManager.getConnection(url);
Statement sm1=conn.createStatement();
sql=conn.createStatement();
rs1=sql.executeQuery("select * from dbo.Adminis where num="+"'"+Loginid+"'");//查询注册的用户名是否已经存在
if(rs1.next()){
JOptionPane.showMessageDialog(null,"此用户名已存在,请重新输入","用户已存在",JOptionPane.WARNING_MESSAGE);
jTextField1.setText(null);
return;//代码就此终止,重新输入
}
int ins=sm1.executeUpdate("insert into dbo.Adminis(num,name,paswrd,remark)"+" values('"+Loginid+"','"+username+"','"+paswd+"','管理员')");
sm1.close();
conn.close();
}catch(SQLException sqe){}
if(ins>=0){
JOptionPane.showMessageDialog(null,"注册成功。");
LogDial.setVisible(true);
LogDial.setVisible(true);
LogDial.setLocationRelativeTo(null);
setVisible(false);//隐藏次对话
}
else{
JOptionPane.showMessageDialog(null,"注册失败。");
}
}
谢谢!
表dbo.Admin
列名 类型
num char(14)主键 不能为Null
paswrd char(16)
remark char(40)
name char(32)
还有那个重新设置int ins=-1后,ins始终始终小于0 展开
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Connection conn;
Statement sql;
ResultSet rs1;
Loginid=jTextField1.getText();
username=jTextField2.getText();
paswd=new String(jPasswordField1.getPassword());
aspaswd=new String(jPasswordField2.getPassword());
if(Loginid==null||Loginid.equals("")||username==null||username.equals("")||paswd==null||paswd.equals("")||aspaswd==null||aspaswd.equals("")){
JOptionPane.showMessageDialog(null,"用户信息不能为空","错误",JOptionPane.ERROR_MESSAGE);
return; //代码执行到此处终止
}
if(paswd.equals(aspaswd)==false){
JOptionPane.showMessageDialog(null,"错误,两次密码不一致。");
jPasswordField1.setText(null);
jPasswordField2.setText(null);
return;//代码执行到此处终止
}
String driver="sun.jdbc.odbc.JdbcOdbcDriver";//"com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:odbc:BooksManage";//"jdbc:sqlserver://localhost:1433;DatabaseName=book";
try{
Class.forName(driver);
}catch(ClassNotFoundException c){ }
try{
conn=DriverManager.getConnection(url);
Statement sm1=conn.createStatement();
sql=conn.createStatement();
rs1=sql.executeQuery("select * from dbo.Adminis where num="+"'"+Loginid+"'");//查询注册的用户名是否已经存在
if(rs1.next()){
JOptionPane.showMessageDialog(null,"此用户名已存在,请重新输入","用户已存在",JOptionPane.WARNING_MESSAGE);
jTextField1.setText(null);
return;//代码就此终止,重新输入
}
int ins=sm1.executeUpdate("insert into dbo.Adminis(num,name,paswrd,remark)"+" values('"+Loginid+"','"+username+"','"+paswd+"','管理员')");
sm1.close();
conn.close();
}catch(SQLException sqe){}
if(ins>=0){
JOptionPane.showMessageDialog(null,"注册成功。");
LogDial.setVisible(true);
LogDial.setVisible(true);
LogDial.setLocationRelativeTo(null);
setVisible(false);//隐藏次对话
}
else{
JOptionPane.showMessageDialog(null,"注册失败。");
}
}
谢谢!
表dbo.Admin
列名 类型
num char(14)主键 不能为Null
paswrd char(16)
remark char(40)
name char(32)
还有那个重新设置int ins=-1后,ins始终始终小于0 展开
1个回答
展开全部
这回不是SQL语句错了,
嗯,有异常发生吗?
嗯,有异常发生吗?
更多追问追答
追问
没吧,因为在SQL中输入用户信息,再注册,如果出现相同的num(Loginid),就会注册失败。select语句是可以用的,但是insert into用了没反应。
追答
insert into用了没反应
这是什么意思?停在那不动了,还是这条记录没插入进去,便也不出错?
你用的什么数据库?Access?
试着提交一下看看是什么样
conn.commit(); 加上这一句,在下边这两句前面。
sm1.close();
conn.close();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询