我不是学JAVA的,代码没法提供,不过,原理就是点击按钮触发后台SQL查询,条件就是NAME,PS字段,查询结果放入jdbTable1里,弹出对话框应该很简单估计一个函数吧。

解决方案 »

  1.   


    database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:microsoft:sqlserver://服务器IP:1433;DatabaseName=数据库名", "sa", "", false, "com.microsoft.jdbc.sqlserver.SQLServerDriver"));
             database1.setDatabaseName("");
             queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM chinese", null, true, Load.ALL));
             jdbTable1.setDataSet(queryDataSet1);
    这个问题你因该这样考虑。你的这个按钮可以放在其他的地方,再这个按钮的事件响应中添加搜索这样的代码,执行搜索你的数据库里的一定条件下的行的SQL语句。
    “select * from 表名 where ......"
    database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:microsoft:sqlserver://"+url+":1433;DatabaseName=中小学学生查询工具", "sa", "", false, "com.microsoft.jdbc.sqlserver.SQLServerDriver"));
       queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from chinese where type='"+jText2+"'union select * from maths where type='"+jText2+"' union select * from English where type='"+jText2+"' union select * from IT where type='"+jText2+"'", null, true, Load.ALL));
       newjTable.jdbTable1.setDataSet(queryDataSet1);
    向上面这样的。然后判断你的JTABLE1中的行是否大于0。
    1。大于0。。
    2。反之。
    你在自己试试。呵呵!
      

  2.   

    谢谢您的帮忙,但因为我是菜鸟,我的数据库用的是jdbc-odbc桥连接的,这回
    我想通过点击按钮打开另一个表,我的代码有错误吗?  void jButton1_actionPerformed(ActionEvent e) {queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 单位总表 ", null, true, Load.ALL));jdbTable1.setDataSet(queryDataSet1);
      }
    我的代码不好使啊,愁死我了!!
      

  3.   

    我的错误信息是这些:您帮帮忙吧!!
    Exception occurred during event dispatching:See com.borland.dx.dataset.DataSetException error code:  BASE+39com.borland.dx.dataset.DataSetException: Operation cannot be performed on an open DataSet.  Close the DataSet first. at com.borland.dx.dataset.DataSetException.a(Unknown Source) at com.borland.dx.dataset.DataSetException.g(Unknown Source) at com.borland.dx.dataset.StorageDataSet.m(Unknown Source) at com.borland.dx.dataset.ProviderHelp.failIfOpen(Unknown Source) at com.borland.dx.sql.dataset.QueryDataSet.setQuery(Unknown Source) at untitled1.Frame1.jButton1_actionPerformed(Frame1.java:71) at untitled1.Frame1$1.actionPerformed(Frame1.java:52) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216) at java.awt.Component.processMouseEvent(Component.java:3715) at java.awt.Component.processEvent(Component.java:3544) at java.awt.Container.processEvent(Container.java:1164) at java.awt.Component.dispatchEventImpl(Component.java:2593) at java.awt.Container.dispatchEventImpl(Container.java:1213) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125) at java.awt.Container.dispatchEventImpl(Container.java:1200) at java.awt.Window.dispatchEventImpl(Window.java:914) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:339) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
      

  4.   

    com.borland.dx.dataset.DataSetException: Operation cannot be performed on an open DataSet.  Close the DataSet first.呵呵,看到上面的没有,也就是你出现的错误。
    不能对一个开着的DataSet操作。必须关闭他先。
    给你点例子,你看看:
             jTree1.addMouseListener(new MouseAdapter(){
             public void mouseClicked(MouseEvent e){        try{
             TreePath tp=jTree1.getPathForLocation(e.getX(),e.getY());
             String kk = tp.getLastPathComponent().toString();
             if(kk.toString().equals("语文")){//点击语文时的响应
             queryDataSet1.close();
             queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from chinese", null, true, Load.ALL));
             queryDataSet1.refresh();
             jdbTable1.setDataSet(queryDataSet1);
              }
             if(kk.toString().equals("数学")){//点击数学时的响应
             queryDataSet1.close();
             queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from maths", null, true, Load.ALL));
             queryDataSet1.refresh();
             jdbTable1.setDataSet(queryDataSet1);
              }
             if(kk.toString().equals("英语")){//点击英语时的响应
             queryDataSet1.close();
             queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from English", null, true, Load.ALL));
             queryDataSet1.refresh();
             jdbTable1.setDataSet(queryDataSet1);
              }
            if(kk.toString().equals("信息")){//点击信息时的响应
            queryDataSet1.close();
            queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from IT", null, true, Load.ALL));
            queryDataSet1.refresh();
            jdbTable1.setDataSet(queryDataSet1);
            } }catch(java.lang.NullPointerException ei){}
             }});
    执行下一个SQL语句的操作之前。你必须关闭你的相应的DataSet,QueryDataSet.
    你在试试。有什么问题再问。呵呵。
      

  5.   

    补充一点,关闭你的原来的DataSet,QueryDataSet的后建立新的DataSet,QueryDataSet.然后再显示再你的JTABLE中。
     呵呵,建议你把JTABLE设成STATIC 的。
      

  6.   

    DataSet是用来连接你的数据库的。
    QueryDataSet是用来执行你的SQL语句的。
    如果你的数据库不变的话。你只需关闭原来的QueryDataSet.然后建立一个新的。上面的你看一下。呵呵。
      

  7.   

    谢谢大家,你们的话对我有很大的帮助,但我的水平确实不行,下面这个功能还是没有实现:
    点击这个按钮能不能查询表里,姓名字段等于‘王龙’并且密码等于‘11’的记录,如果找到了,弹出对话框‘找到了’,如果没找到,弹出对话框‘没找到’。这样吧,谁能把我下面这句话翻译成jbuilder语言:
    如果没有找到,那么
    弹出对话框:‘没找到’
    如果找到了
    弹出对话框:‘找到了’
      

  8.   

    if(找到了)
     JOptionPane.showConfirmDialog(null, "找到了","Warning",
                          JOptionPane.DEFAULT_OPTION,    JOptionPane.WARNING_MESSAGE,null);
    else 
       JOptionPane.showConfirmDialog(null, "没找到","Warning",
                          JOptionPane.DEFAULT_OPTION,    JOptionPane.WARNING_MESSAGE,null);
      

  9.   

    谢谢大侠colors的指点,但是‘找到了’怎么翻译。
    我写成 queryDataSet1.close();
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 用户总表", null, true, Load.ALL));
    if (queryDataSet1.isEmpty()) {
      JOptionPane.showMessageDialog(null,"没有找到!!");
    }我这句话的本意是如果queryDataSet1是空的,那么弹出对话框“没有找到”,可是我的用户总表里有数据啊,为什么还要弹出‘没有找到’?
      

  10.   


    这个帖子你都提了好久了,几乎天天我都看这个贴子,可你好长时间不上来,我也不知你搞定没有。
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 用户总表 while ...........", null, true, Load.ALL));SQL语句有问提。
    select * from 数据库表名 where 姓名=王龙 and 年龄=12这个语句根据你的实际情况而定。自己写吧,有什么问题再问。
      

  11.   


    SQL语句必须对,这直接关系着你在数据库中的选择方式。
    你先把搜索到的数据库的各条记录放在JTABLE中,然后看JTABLE中的行数是不是大于0。
    if(大于0)
     JOptionPane.showConfirmDialog(null, "找到了","Warning",
                          JOptionPane.DEFAULT_OPTION,    JOptionPane.WARNING_MESSAGE,null);
    else 
       JOptionPane.showConfirmDialog(null, "没找到","Warning",
                          JOptionPane.DEFAULT_OPTION,    JOptionPane.WARNING_MESSAGE,null);试试!
      

  12.   

    实际上sql语句我会写,只不过我没写,不过象您说的‘大于0’怎么写,或着不用jdbtable,
    只用queryDataSet1判断,判断搜索出的记录是空的怎么写,我这么写对吗?queryDataSet1.close();
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 用户总表", null, true, Load.ALL));
    if (queryDataSet1.isEmpty()) {
      JOptionPane.showMessageDialog(null,"没有找到!!");
    }
      

  13.   

    你必须关闭queryDataSet1之后,用queryDataSet1.open()执行sql语句
    如下面的程序
    queryDataSet1.close();
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 用户总表", null, true, Load.ALL));
    queryDataSet1.open();
    if (queryDataSet1.getRowCount()==0) {
      JOptionPane.showMessageDialog(null,"没有找到!!");
    }