if()语句里面的判断怎么不执行?

B624987420 2011-05-25 09:51:42
class Delete{
Scanner scanner=new Scanner(System.in);
ResultSet rs=null;
int i;
public Delete(){
String name;
int n, m;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (java.lang.ClassNotFoundException e)
{
System.out.println("打不开文件"+e);
}
try{
Connection con=DriverManager.getConnection("jdbc:odbc:ceshi","meng","1234");
Statement sql= con.createStatement();
rs=sql.executeQuery("SELECT*FROM chengjibiao");
System.out.println("请输入你要删除的名字:");
String name=scanner.nextLine();
if(rs.next())
{

for(i=2;i<8;i++)
{
if( rs.getString(i).equals("name"))//为什么不执行!!
{
break;
}

}

}
while(rs.next())
{
if(rs.getString(3).equals(name))
{
n=rs.getRow();
System.out.print(n);
if(rs.absolute(n))
{
rs.deleteRow();
System.out.println("操作完成!!");
}
else{
System.out.println("输入的错误!!");
}
}
}
rs.close();
}catch(Exception e){}
...全文
734 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LazyCat2222 2011-05-27
  • 打赏
  • 举报
回复
if( rs.getString(i).equals("name"))//为什么不执行!!
{
break;
}

改成


if( rs.getString(i).equals(name))//为什么不执行!!
{
break;
}



你是用rs.getString(i)的值和name这个变量的值比较,不是用rs得到的值和"name"这个字符串比较,加了引号表示 有一个字符串是name.而不会得到变量name的值
hswujingjing 2011-05-27
  • 打赏
  • 举报
回复
这个写法...很纠结
Chirs_for_man 2011-05-27
  • 打赏
  • 举报
回复
对啊,name是一个变量,“name”是一个字符串啊
xinghen88 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 b624987420 的回复:]
for(i=2;i<8;i++)
{
if( rs.getString(i).equals("name"))//为什么不执行!!
{
break;
}

}

[/Quote]
楼主你是想把用户输入的名字和你数据库表中的每个字段相匹配是吧?你的匹配方法不行:改成这样吧!
if(name.equals(rs.getString(i))
ying246437 2011-05-26
  • 打赏
  • 举报
回复
这个需要加循环么? 看一下数据库的表name这个属性排第几就直接写上rs.getString(i)i就是具体的排序
coooliang 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 magong 的回复:]
引用楼主 b624987420 的回复:
if( rs.getString(i).equals("name"))//为什么不执行!!

是不是应该是
if( rs.getString(i).equals(name))

不过即便这里改过了,你的整体逻辑还是有点问题的,感觉思路有点乱,不知道LZ想要实现什么效果。
[/Quote]

应该是这原因 变成和 字符串"name"比较 而不是和变量name比较了
留下买路财 2011-05-25
  • 打赏
  • 举报
回复
有可能就像1楼说的那样LZ手误写错了
阳明 to life 2011-05-25
  • 打赏
  • 举报
回复
for(i=2;i<8;i++)
{
if( rs.getString(i).equals("name"))//为什么不执行!!
{
break;
}

}
这段话在你的程序中没起任何作用,你大不了就是想找到值为name的对应的i值,但是你i又用在哪?
magong 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 b624987420 的回复:]
if( rs.getString(i).equals("name"))//为什么不执行!!
[/Quote]
是不是应该是
if( rs.getString(i).equals(name))

不过即便这里改过了,你的整体逻辑还是有点问题的,感觉思路有点乱,不知道LZ想要实现什么效果。

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧