改了点,不过你的程序我还是有点看不明白。 结构不太好!!stmt=con.createStatement(); rs1=stmt.executeQuery("SELECT * from myuser where user_name='"+user+"' and user_pwd='"+pwd+"'"); int rowscount2=0; String user_id; while(rs1.next()) { rowscount2++; user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量 }if(rowscount2!=0) { user_id=rs1.getString("user_id"); out.println(user_id); rs2=stmt.executeQuery("SELECT * from userqx where user_id='"+user_id+"'"); ……
…… stmt=con.createStatement(); rs1=stmt.executeQuery("SELECT * from myuser where user_name='"+user+"' and user_pwd='"+pwd+"'"); int rowscount2=0; String user_id; while(rs1.next()) { rowscount2++; String user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量 out.println(user_id);//可以显示user_id的值 }if(rowscount2!=0) { out.println(user_id);//错误提示在这一句, stmt=con.createStatement(); rs2=stmt.executeQuery("SELECT * from userqx where user_id='"+user_id+"'"); …… 错误信息: variable user_id might not have been initialized out.println(user_id);
既然你想在下个SQL语句中引用此变量,就不应该把它放到{}中,过了这段代码 该变量就被释放了~
{
rowscount2++;
String user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量
}已经到最后了
user_id没有值
结构不太好!!stmt=con.createStatement();
rs1=stmt.executeQuery("SELECT * from myuser where user_name='"+user+"' and user_pwd='"+pwd+"'");
int rowscount2=0;
String user_id;
while(rs1.next())
{
rowscount2++;
user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量
}if(rowscount2!=0)
{
user_id=rs1.getString("user_id");
out.println(user_id);
rs2=stmt.executeQuery("SELECT * from userqx where user_id='"+user_id+"'");
……
我应该如何处理,请明示,谢谢!
{
rowscount2++;
String user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量
}
当这段执行完毕后,rs1已经不能去到数据了,而user_id退出此循环后已经失效
可以改为
String user_id;
while(rs1.next()){
rowscount2++;
user_id=rs1.getString("user_id");
}这样在后面的程序中就能去到user_id了
只要在它的作用范围内都可以引用的~!
stmt=con.createStatement();
rs1=stmt.executeQuery("SELECT * from myuser where user_name='"+user+"' and user_pwd='"+pwd+"'");
int rowscount2=0;
String user_id;
while(rs1.next())
{
rowscount2++;
String user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量
out.println(user_id);//可以显示user_id的值
}if(rowscount2!=0)
{
out.println(user_id);//错误提示在这一句,
stmt=con.createStatement();
rs2=stmt.executeQuery("SELECT * from userqx where user_id='"+user_id+"'");
……
错误信息:
variable user_id might not have been initialized
out.println(user_id);
为:user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量
请问如何解决
rs1=stmt.executeQuery("SELECT * from myuser where user_name='"+user+"' and user_pwd='"+pwd+"'");
int rowscount2=0;
String user_id="";
while(rs1.next())
{
rowscount2++;
user_id=rs1.getString("user_id");//我想在下个SQL语句中引用的变量
out.println(user_id);//可以显示user_id的值
}if(rowscount2!=0)
{
out.println(user_id);//错误提示在这一句,
stmt=con.createStatement();
String query_string="SELECT * from userqx where user_id='"+user_id+"'";
rs2=stmt.executeQuery(query_string);
……