|
这个主题共有 1 回复 / 1 页 [
]
|
|
|
|
|
|
我快颠了,找不出问题所在,请大侠们求救!!!
|
发表: 2004年06月15日 15:33
|
回复
|
|
本人用的是Jbuilder9,最近我在做一个系统,就差密码那部分就OK了.情况是这样的: 问题一: 其他部分的数据插入,查询,更新,删除,连接等我都是用Jbuilder来帮我完成的,Jbuilder9都有相应的组件.当然啦,组件jdbNavToolBar这个组件已经具有数据插入,查询,更新,删除的功能了,数据连接是用database来实现的.问题就在于,我想分别做"插入,查询,更新,删除"这四个按钮来实现数据的操作就不懂如何做了(当然,组件jdbNavToolBar有这个功能).不知道有没有大侠会用Jbuilder9来做这方面的按钮事件?3 问题二:(补充java环境: Jbuilder9,j2sdk1.4.2_04,SQL Server 7.0数据库系统) (提示:以下是一个成功添加的事件)我打算自己写事件程序.我做了一个"添加产品"的页面,里面有:"名称,负责人,所属部门,单位,单价,描述"6个label和6个jTextField.以下是"添加按钮"程序代码: void jButtonadd_actionPerformed(ActionEvent e) { String strSQL; String name; String principal; String depart; String unit; String unitprice; String comment;
//判断是否产品为空 if (jTextFieldname.getText().trim().equals("")) {JOptionPane.showMessageDialog(null,"产品名称不可为空,请确认!") ; return; } if (jTextFieldperson.getText() .trim() .equals("") ) {JOptionPane.showMessageDialog(null,"负责人不可为空,请确认!") ; return; } if (jTextFielddep.getText() .trim() .equals("") ) {JOptionPane.showMessageDialog(null,"产品所属部门不可为空,请确认!") ; return; } //生成sql语句 name=jTextFieldname.getText().trim() ; principal=jTextFieldperson.getText() .trim() ; depart=jTextFielddep.getText() .trim() ; unit=jTextFieldcompany.getText() .trim() ; unitprice=jTextFieldprice.getText().trim() ; comment=jTextFieldcomment.getText() .trim() ; strSQL="insert into ProductInfo(Name,Principal,Depart,Unit,Unitprice,Comment) values ('"; strSQL=strSQL+name +"','"; strSQL=strSQL+principal +"','"; strSQL=strSQL+depart+"','"; strSQL=strSQL+unit
+"','"; strSQL=strSQL+unitprice +"','"; strSQL=strSQL+comment +"'"; strSQL=strSQL+")"; //执行数据库语句 if (db.executeSql(strSQL)) {JOptionPane.showMessageDialog(null,"添加成功") ;} else {JOptionPane.showMessageDialog(null,"添加失败,请重新添加") ;} }
以上的db.executeSql(strSQL)是DBManager类的一个实例,是用来连接数据库用的.以下是DBManager类的程序代码: package productmanager; //;引入sql包 import java.sql.*; import com.borland.dx.sql.dataset.*; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004.6.7</p> * <p>Company: </p> * @author:黄健桓 * @version 1.0 */ //数据库操作类 public class DBManager { //定义数据集 ResultSet rs; //创建指定的数据库URL String url = "jdbc:datadirect:sqlserver://202.129.21.125:1433;DataBaseName=productsystem "; String username = "sa"; String password = "";
//缺省构造方法 public DBManager() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //查询方法,返回查询结果集 public ResultSet getResult(String sql) { try { //加载驱动程序 Class.forName("com.ddtek.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection(url,username,password); Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executeQuery(sql); return rs; } //异常处理 catch (Exception e) { System.out.println("getResult-----" + e.toString()); return null; } } public boolean executeSql(String sql) { try { Class.forName("com.ddtek.jdbc.sqlserver.SQLServerDriver"); Connection conn = DriverManager.getConnection(url,username,password) ; Statement stmt = conn.createStatement(); stmt.executeUpdate(sql); conn.commit() ; return true; } catch (Exception e) { System.out.println("executeSql------"+e.toString() ); return false; } } private void jbInit() throws Exception { } }
好了,以上这些都是可以成功执行添加操作的代码,这"问题二"我写了以上这些都是做为铺垫用的,以下才是我的问题所在.(这里主要说明了我的代码没有错,包括数据库连接类也没错.)言归正传:前面我说我就差做用户密码登陆,修改,删除这方面的操作.恩,对于这个问题我是这么想的:"只要DBManager可以完成数据库连接,然后我做了表'Userinfo'----是用来保存用户信息的,里面有Username,Password,Power这三个字段,这里就做好了事件的准备工夫了. 以下是我要添加用户的程序代码,如下: void jButtonOK_actionPerformed(ActionEvent e) { String strSQL; String name; String pass; String power; name=jTextFieldUserLogin.getText().trim() ; pass=jPassword.getText().trim() ; power=jComboBoxpower.getSelectedItem().toString().trim(); strSQL="insert into productuser(Username,Password) values ('"; strSQL=strSQL+name +"','"; strSQL=strSQL+pass +"','"; strSQL=strSQL+power +"','"; strSQL=strSQL+")";
if (db.executeSql(strSQL)) {JOptionPane.showMessageDialog(null,"添加成功") ;} else {JOptionPane.showMessageDialog(null,"添加失败,请重新添加") ;}
}
}
以上这段代码在Jbuiler9中没有红色画线提示有错,在编译中也可以顺利编译(以上可能我有打错的地方,可能是我在这打错,请谅解!我的程序是可以正常编译的).在我测试是否能添加用户时:就老是弹出"添加失败,请重新添加"提示框(那是我写的提示框-----"{JOptionPane.showMessageDialog(null,"添加失败,请重新添加" "看到吧?是我写的.这段程序代码我检查过N遍了,甚至后来我是copy前面添加产品的代码的,只是修改insert到Userinfo表中,修改了所插入的字段而已.可为什么就是插入不了数据,就连我后面做Update数据的事件一出现一些问题(就是有的代码的功能可用,测试编译程序时:有一些不能用,有一些有没有用.可是这些都是应该可以正常执行才对呀!!!???我百思不得其解,这已经折磨我到现在好几天了,公司又催我交货,救命呀!!我实在受不了了,公司也只有我一个人用java的,问又没人问,本人又是菜鸟级的,只好把希望寄托在这里了,请各位大侠一定一定得帮帮小弟!! My E-mail:hjh303cn2003@163.net 或者在这里回复也好. 谢了!
|
|
|
|
|
|
Re: 我快颠了,找不出问题所在,请大侠们求救!!!
|
发表: 2004年06月19日 15:44
|
回复
|
|
如果你是在学习J2EE,我倒是可以尝试帮助你。
发现你用GUI直接调用JDBC这样类似两层结构的东西来做系统,我只能袖手旁观。这么痛苦,不如用Deplhi或VB做,何必一定要顶着Java的明目呢?
|
|
|
|