我快颠了,找不出问题所在,请大侠们求救!!!

04-06-15 hjh303cn
本人用的是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

或者在这里回复也好.

谢了!

banq
2004-06-19 15:44
如果你是在学习J2EE,我倒是可以尝试帮助你。

发现你用GUI直接调用JDBC这样类似两层结构的东西来做系统,我只能袖手旁观。这么痛苦,不如用Deplhi或VB做,何必一定要顶着Java的明目呢?

猜你喜欢