发布出来的数据库别名是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);
采用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);
strSQL="SELECT * FROM tbuser WHERE username='"+username+"'"2. USE fancy 这样的内容,我想应该写在连接字符串中或者数据源中比较好吧3. 不知道你是什么数据库,因此不知道该怎么回答
另外你的odbc配置了吗,OK吗?
养成一个好习惯很重要,
先把你想执行的SQL在查询分析器里运行一下,确保你写的对了,返回记录正确在往程序里写
直接在程序里写SQL 出问题再改可不怎么好啊