先声明一些实例变量:
private JTextField jTextField_name=new JTextField(); //用户名文本框
private JPasswordField jPasswordField=new JPasswordField(); //密码框 private JButton okButton = new JButton(); //确定按钮
private JButton cancelButton = new JButton(); //取消按钮 protected String user,password,password_from; //一些字符变量,用于存储用户名和密码 /*这里是中间的一些代码*/这是“确定” 按钮的触发函数:
void okButtonAction(ActionEvent e) {
Connection con;
String url="jdbc:odbc:grrc";
Statement stmt;
user = jTextField_name.getText();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"cq-pro","68597792");
String sql="SELECT PASSWORD //密码字段
FROM sys_safe //sys_safe是表名
WHERE NAME ='"+user+"'";
stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
if(rs.next())
password_from = rs.getString("PASSWORD");
if(password_from.endsWith(password)){
JOptionPane.showMessageDialog(this,"密码正确!","登录信息",JOptionPane.INFORMATION_MESSAGE);
this.setVisible(false); //登录成功后登录窗口不可见
frame.setVisible(true); //成功登录后显示主窗口frame
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int h = screenSize.height;
int w = screenSize.width;
frame.setSize(w,h);
Dimension frameMainSize = frame.getSize();
// Center the Window
if (frameMainSize.height > screenSize.height) {
frameMainSize.height = screenSize.height;
}
if (frameMainSize.width > screenSize.width) {
frameMainSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameMainSize.width) / 2, (screenSize.height - frameMainSize.height) / 2);
}
else{
JOptionPane.showMessageDialog(this,"密码和用户名不符,请重新输入密码!","登录信息",JOptionPane.INFORMATION_MESSAGE);
}
con.close();
}catch(Exception ex){
System.out.println("A problem occurred during the establishment of th connection: "+ex);
} }是不是String sql="SELECT PASSWORD
FROM sys_safe
WHERE NAME ='"+user+"'";
有错?我没发现有什么错啊!有劳各位了!
private JTextField jTextField_name=new JTextField(); //用户名文本框
private JPasswordField jPasswordField=new JPasswordField(); //密码框 private JButton okButton = new JButton(); //确定按钮
private JButton cancelButton = new JButton(); //取消按钮 protected String user,password,password_from; //一些字符变量,用于存储用户名和密码 /*这里是中间的一些代码*/这是“确定” 按钮的触发函数:
void okButtonAction(ActionEvent e) {
Connection con;
String url="jdbc:odbc:grrc";
Statement stmt;
user = jTextField_name.getText();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url,"cq-pro","68597792");
String sql="SELECT PASSWORD //密码字段
FROM sys_safe //sys_safe是表名
WHERE NAME ='"+user+"'";
stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
if(rs.next())
password_from = rs.getString("PASSWORD");
if(password_from.endsWith(password)){
JOptionPane.showMessageDialog(this,"密码正确!","登录信息",JOptionPane.INFORMATION_MESSAGE);
this.setVisible(false); //登录成功后登录窗口不可见
frame.setVisible(true); //成功登录后显示主窗口frame
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int h = screenSize.height;
int w = screenSize.width;
frame.setSize(w,h);
Dimension frameMainSize = frame.getSize();
// Center the Window
if (frameMainSize.height > screenSize.height) {
frameMainSize.height = screenSize.height;
}
if (frameMainSize.width > screenSize.width) {
frameMainSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameMainSize.width) / 2, (screenSize.height - frameMainSize.height) / 2);
}
else{
JOptionPane.showMessageDialog(this,"密码和用户名不符,请重新输入密码!","登录信息",JOptionPane.INFORMATION_MESSAGE);
}
con.close();
}catch(Exception ex){
System.out.println("A problem occurred during the establishment of th connection: "+ex);
} }是不是String sql="SELECT PASSWORD
FROM sys_safe
WHERE NAME ='"+user+"'";
有错?我没发现有什么错啊!有劳各位了!
解决方案 »
- Java图片路径问题
- 我现在有一个jar文件, 里面有类若干,我希望在里面加一个类, 然后重新生成jar
- 问一个数据刷新问题,JTABLE怎么监听SQL2005表里的数据更改了,然后即时更改JTABLE里边的对应内容?
- 关于运行.jar文件问题 总是显示failed to load Main-Class manifest attribute
- 低级错误..在线急等
- 求正值表达式写法
- JDBC连接SQL Server 2000出错,但连接MySQL就没出错?
- 搭建完运行环境运行程序在JCreator中无误,可在cmd 下就出现错误,帮我看看是怎么回事!
- 一个JAVASCRIPT的问题
- 在JAVA中 类之间的通信可不可以发事件消息??
- 此句为何解请帮助!return Math.abs(rand.nextInt()) % mod + 1;
- 数组问题-请帮忙看看,谢谢
FROM grrc.sys_safe //sys_safe是表名
WHERE NAME ='"+user+"'";
FROM grrc.sys_safe //sys_safe是表名
WHERE NAME ='"+user+"'";
--------------------------------------------------------------
还是不行啊!
我觉得是SQLserver的错,但怎么也找不出来,测试也是successful,就是不行啊!
是不是都是用Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");来装载?
我在FAQ里面看到Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 这条语句,请问这条语句是什么含义?和Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");有什么区别?
我的问题是不是出在这里?谢谢了
FROM sys_safe //sys_safe是表名
WHERE NAME ='"+user+"'";如果这样写编译都通不过呀!
String sql="SELECT PASSWORD FROM sys_safe WHERE NAME ='"+user+"'";
----------------------------------------------------
这样改了之后就能连上了!顺便问一下zyg158(DD),为什么要这样改呢?
也谢谢各位网友的回答,问题解决了,我结帖了!
因为你的表名和SQL Server中的系统表的前缀相同,都是sys,如果不加[]
数据库有可能认为你要访问的是系统表,所以会有问题