日期:2014-05-20  浏览次数:20754 次

如何判断数据库中的字段是否已存在?
public   void   AddShujuku(){
Connection   con;
Statement   sql;
ResultSet   rs;
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
}
catch(ClassNotFoundException   e){
System.out.println( " "+e);
}
try{
String   strSQL;
strSQL= "insert   into   用户管理   (用户名,密码)   values( ' ";
strSQL=strSQL+text1.getText().trim()+ " ', ' ";
strSQL=strSQL+text2.getText().trim()+ " ') ";

con=DriverManager.getConnection( "jdbc:odbc:图书管理系统 ", " ", " ");
sql=con.createStatement();
boolean   isexist=false;
rs=sql.executeQuery( "SELECT   用户名   FROM   用户管理   WHERE   用户名= ' "+text1.getText().trim()+ " ' ");
try{
isexist=rs.first();
}
catch(SQLException   ex){}
if(isexist){
JOptionPane.showMessageDialog(null, "用户名已存在! ");
}
else{
sql.executeUpdate(strSQL);
JOptionPane.showMessageDialog(null, "添加成功! ");
con.close();
}
}
catch(SQLException   e1){   e1.printStackTrace();}

}
以上是我的源代码,我用了first方法,定义了一个boolean   isexist=false来判断,但是当我输入重复的数据时电脑还是判断不出来,为什么哩?

------解决方案--------------------
isexist=rs.next();
------解决方案--------------------
楼上正解!

一般来说,在生成resultset之后,都要调用next()方法。
next()方法将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
------解决方案--------------------
有可能是isexist=rs.first();这句执行的时候就出错了。