继承我的代码:
连接数据库的代码:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=city_mart;user=sa;password=aptech");
Statement st=con.createStatement();
String sql="Select Emp_login_ID from employee where Emp_login_ID = '"+r3.getText()+"' ";
ResultSet rs=st.executeQuery(sql);
String login = rs.getString(1);
if (r3.getText().equalsIgnoreCase(login))
{
JOptionPane.showMessageDialog(rootPane, "Login ID not available.");
}
else
{
JOptionPane.showMessageDialog(rootPane, "Login ID is available.");
}
非常感谢。非常感谢。
答案 0 :(得分:2)
在致电ResultSet#next()
ResultSet#getString()
首先将光标移动到第一行,然后获取任何列的值。
我建议您使用PreparedStatment
代替Statement
。
阅读Using Prepared Statements和When we use PreparedStatement instead of Statement?
上的教程它应该是这样的:(检查rs.next()返回的值)
String sql="Select Emp_login_ID from employee where Emp_login_ID = ?";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1,r3.getText());
ResultSet rs=st.executeQuery(sql);
if(rs.next()){
String login = rs.getString(1);
JOptionPane.showMessageDialog(rootPane, "Login ID is available.");
}else{
JOptionPane.showMessageDialog(rootPane, "Login ID not available.");
}
答案 1 :(得分:0)
您可以尝试:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=city_mart;user=sa;password=aptech");
Statement st=con.createStatement();
String sql="Select Emp_login_ID from employee where Emp_login_ID = '"+r3.getText()+"' ";
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
String login = rs.getString(1);
if (r3.getText().equalsIgnoreCase(login))
{
JOptionPane.showMessageDialog(rootPane, "Login ID not available.");
}
else
{
JOptionPane.showMessageDialog(rootPane, "Login ID is available.");
}
}
将光标从当前位置向前移动一行。一个 ResultSet游标最初位于第一行之前;该 首先调用方法接下来使第一行成为当前行;该 第二次调用使第二行成为当前行,依此类推。
您可以阅读结果集here
的下一个方法答案 2 :(得分:0)
它会抛出异常,因为您无法调用ResultSet.next()
。如果您已经调用它,它将返回false
,您根本不应该调用rs.getString()
。