发布出来的数据库别名是test,连接数据库的用户名和密码为空,数据库已经发布出来并且测试成功
采用JDBC.ODBC桥接方式,在tbuser表中是所有用户的用户名密码,我现在想作个查询遍历里面的用户名密码当输入的是正确的时候count++也就是为1后继续后面的操作,可是这段程序不知道那里错了,好象根本没有提取数据库里的信息,排错用OUT打印COUNT的值还是为0,是我查询的语句写的不对还是那里错了呢??数据库连接应该是没有问题,因为另外一个商品表也是用此种方法连接所有表都是在fancy里那个表里的产品信息可以正确读出String username=request.getParameter("username");
String password=request.getParameter("password");
String strSQL="BEGIN USE fancy SELECT*FROM tbuser WHERE username="+username+"and password="+password+"END";
 int count=0;
 out.println(strSQL);
 try
 {
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 Connection conn=DriverManager.getConnection("jdbc:odbc:test","sa","");
 Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(strSQL);
 while(rs.next())
 {
 count++;
 }
 stmt.close();
 conn.close();
 }
 catch(Exception e){
 }
 out.println(count);

解决方案 »

  1.   

    发布出来的数据库别名是test,连接数据库的用户名为SA
      

  2.   

    1. 字符串写在 SQL 中,应该使用 '' 吧:
        strSQL="SELECT * FROM tbuser WHERE username='"+username+"'"2. USE fancy 这样的内容,我想应该写在连接字符串中或者数据源中比较好吧3. 不知道你是什么数据库,因此不知道该怎么回答
      

  3.   

    SQL2000的数据裤库,谢谢,请大家尽量帮忙
      

  4.   

    use fancy不要写在sql里面
    另外你的odbc配置了吗,OK吗?
      

  5.   

    是啊。。手先你把你的sql语句写对再说。。分清string 和int型变量。。然后下手就快了
      

  6.   

    String strSQL="BEGIN USE fancy SELECT * FROM tbuser WHERE username='"+username+"'and password='"+password+"' END";
    养成一个好习惯很重要,
    先把你想执行的SQL在查询分析器里运行一下,确保你写的对了,返回记录正确在往程序里写
    直接在程序里写SQL 出问题再改可不怎么好啊
      

  7.   

    谢谢大家,尤其黄泉...我看的例子没这''""之分呵呵,我以为STRING类型只要""就好了呢....谢谢大家