首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

用注释的代码就出错?原理不是一样的么?解决方法

2012-01-16 
用注释的代码就出错?原理不是一样的么?publicBooleanisHasInDB(Stringname,Stringpassword){Connectioncon

用注释的代码就出错?原理不是一样的么?
public   Boolean   isHasInDB   (   String   name   ,   String   password   )
        {
                Connection   con   =   connetionDB.getConnetionDB   ();
                Statement   controlDB   =   null;
                //String   SQL   =   "select   Password   from   Card   where   Id   =   "+   name;//为什么这样就会出错??????????
                String   SQL   =   "select   Id   from   Card   where   Password   =   "   +   password;
                try
                {
                        controlDB   =   con.createStatement   ();
                        ResultSet   rsDB   =   controlDB.executeQuery   (   SQL   );
                        while   (   rsDB.next   ()   )
                        {

                                //if   (   rsDB.getString   (   1   ).equals   (   password   )   )//为什么这样就会出错??????????
                                if   (   rsDB.getString   (   1   ).equals   (   name   )   )
                                {
                                        rsDB.close   ();
                                        con.close   ();
                                        controlDB.close   ();
                                        return   true;
                                }
                        }
                        rsDB.close   ();
                        con.close   ();
                        controlDB.close   ();

                }
                catch   (   SQLException   ex   )
                {
                        //return   false;


                        ex.printStackTrace   ();
                }
                return   false;
        }

真的非常奇怪
按密码来查找就没问题

按名字来查找的话就说没有这列...........

我的名字和密码在SQL里的数据类型是carchar(50)

求高人指点迷津

[解决办法]
应该都会出错的

"select Password from Card where Id = ' "+ name + " ' ";
"select Id from Card where Password = ' "+ Password + " ' ";
[解决办法]
//String SQL = "select Password from Card where Id = "+ name;//为什么这样就会出错??????????

varchar 型 要加单引号,按密码查询不出错有可能数据库中密码的类型不是varchar,仔细检查一下
"select Password from Card where Id = ' "+ name + " ' ";
"select Id from Card where Password = ' "+ Password + " ' ";
在他后面增加一个输出语句

System.out.println(sql);

把输出的sql复制用数据库查询

热点排行
Bad Request.