<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //加载驱动、
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=liuben";
String user="sa";
String password="961213";
Connection conn= DriverManager.getConnection(url,user,password);
PreparedStatement stmt1=conn.prepareStatement("select * from t_user where username=?");
PreparedStatement stmt=conn.prepareStatement("insert into t_user values(?,?)");
String c=request.getParameter("name");
String a=request.getParameter("name");
String b=request.getParameter("psword");
stmt.setString(1,a);
stmt.setString(2,b);
stmt1.setString(1,c);
ResultSet rs=stmt1.executeQuery();
if(rs.next()){
out.print("用户名已存在,请使用其他的用户名");
}else{
int i=stmt.executeUpdate();
out.print("注册成功");
}
}
conn.close();
%>
if(rs.next()) 为false ? 是不是没有查询出结果啊。你的rs为空啊。
打印一下rs的长度,很有可能没有查到东西
一直是else里的内容,那么很明显是你的 rs.next() 并没有成功,从 rs 开始往上测试你的代码。跟楼上说的一样
首先插入的sql语句都是错的,当然这个不影响你的那个问题。但是按照你写的,见名知意,你用密码的值对应了用户名,显然有问题吧。建议代码规范,你的代码特别乱。
insert 没执行, statement 设好参数后,还需要executeupdte 来执行, 所以查询的结果rs 没有任何数据
rs.next()是false,首先你看看你sql语句。执行一下对吗? insert插入数据了吗
做这个画个图理清思路再说,你这个代码太乱了..会把你自己都绕进去的
select * from t_user where username='?'