【求助】数据库连接问题,登录界面不能实现???(有源码)

zhi254898034 2008-06-09 09:26:27
package zxl;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.sql.*;

public class Enter implements ActionListener
{
JTextField user;
JPasswordField passWd;
Container contentPane;
JButton b1,b2;
JPanel pan1,pan2,pan3,pan4;
JFrame bms;
JDialog dialog;
JLabel label;
Connection conn;
Statement stmt;
ResultSet rs;
String str1,str2,name,passwd,sql;

public Enter(JFrame bms)
{
dialog=new JDialog(bms,"登陆",true);
contentPane=dialog.getContentPane();
pan1=new JPanel();
pan2=new JPanel();
pan3=new JPanel();
pan4=new JPanel();
pan1.add(new JLabel("用户",SwingConstants.CENTER));
user=new JTextField("",10);
pan1.add(user);
pan2.add(new JLabel("密码",SwingConstants.CENTER));
passWd=new JPasswordField("",10);
pan2.add(passWd);
b1=new JButton ("确定");
b2=new JButton ("取消");
pan3.add(b1);
pan3.add(b2);
label=new JLabel();
pan4.add(label);
b1.addActionListener(this);
b2.addActionListener(this);
contentPane.setLayout(new GridLayout(4,1));
contentPane.add(pan1);
contentPane.add(pan2);
contentPane.add(pan3);
contentPane.add(pan4);
dialog.setBounds(200,150,250,150);
dialog.show();
}

public void actionPerformed(ActionEvent e)
{
name=user.getText();
passwd=passWd.getText();
label.setText("用户名:"+name+" 密码:"+passwd);
//System.out.println(name+passwd);
if(e.getActionCommand().equals("确定"))
{
sql="select * from USER where NAME='";
sql+=name+"' and PASSWORD='";
sql+=passwd+"'";
System.out.println(sql);
conn=ConnectDB2.getConnection();
rs=ConnectDB2.getResultSet(sql);
if(name.equals("")||passwd.equals(""))
{
JOptionPane.showMessageDialog(dialog, "用户名和密码不能为空!");
}
try
{
while(rs.next())
{
str1=rs.getString(1);
str2=rs.getString(2);
System.out.println(str1);

[color=#FF00FF]if(name.equals(str1))
{
System.out.println(str2);
JOptionPane.showMessageDialog(dialog, "登陆成功");
} [/color]

} }
catch(Exception ec)
{

}
ConnectDB2.disConnection(conn);

}
if(e.getActionCommand().equals("取消"))
{
System.exit(0);
}
}
}
我编译之后,上面标注的那段不能实现!
不知道为什么弹不出登录窗口。
请高手看看!
...全文
195 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjun0785 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhi254898034 的帖子:]
package zxl;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.sql.*;

public class Enter implements ActionListener
{
JTextField user;
JPasswordField passWd;
Container contentPane;
JButton b1,b2;
JPanel pan1,pan2,pan3,pan4;
JFrame bms;
JDialog dialog;
JLabel label;
Connection conn;
Statement st…
[/Quote]


我把你的东西修改了一下,可以弹出登陆窗口了,没有弹出是因为你没有new Enter();
bsr1983 2008-06-11
  • 打赏
  • 举报
回复
你的数据表USER 只有name和PASSWORD两个列吗?如果不是,可能是执行
str1=rs.getString(1);
str2=rs.getString(2);
时出的问题,建议使用
sql="select NAME,PASSWORD from USER where NAME='";
sql+=name+"' and PASSWORD='";
sql+=passwd+"'";
试一试。另外一定要保证NAME和PASSWORD 的数据类型是字符型才可以取出正确的值
ldt_love_java 2008-06-10
  • 打赏
  • 举报
回复
数据库表中有没有多条相同的记录?
yiyi_wx 2008-06-10
  • 打赏
  • 举报
回复
passwd = String.valueOf(passWd.getPassword());
用这个获取密码框的值

str1有值。。。跟name=user.getText();这里获取的值一样?
看看是不是有空格什么的 if条件没执行说明name.equals(str1)这个不成立


zhi254898034 2008-06-10
  • 打赏
  • 举报
回复
没有相同的记录啊!
Str1的值和name=user.getText()这里的一样.
if(name.equals(str1))
{
System.out.println(str2);
JOptionPane.showMessageDialog(dialog, "登陆成功");
就是这个IF执行不了啊!
有没有别的来取代name.equals(str1)这句的
jofy1004 2008-06-10
  • 打赏
  • 举报
回复
.
zhi254898034 2008-06-09
  • 打赏
  • 举报
回复
str2打印不出来!
if(name.equals(str1))
{
System.out.println(str2);
JOptionPane.showMessageDialog(dialog, "登陆成功");
这个if语句好像执行不了啊
starr0110 2008-06-09
  • 打赏
  • 举报
回复
System.out.println(str2);
这个已经print出来了吗?
s74110s 2008-06-09
  • 打赏
  • 举报
回复
passwd=passWd.getText();
方法是不是不对。看有没有别的方法。
文本框和密码框取值好像不一样。好久没做了你自已看下
zhi254898034 2008-06-09
  • 打赏
  • 举报
回复
str1有值,str2没有值。
yiyi_wx 2008-06-09
  • 打赏
  • 举报
回复
打印输出一下str1 str2是否有值 先排除sql语句没查到数据的可能

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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