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。反之。 你在自己试试。呵呵!
我的错误信息是这些:您帮帮忙吧!! 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)
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. 你在试试。有什么问题再问。呵呵。
谢谢大侠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是空的,那么弹出对话框“没有找到”,可是我的用户总表里有数据啊,为什么还要弹出‘没有找到’?
这个帖子你都提了好久了,几乎天天我都看这个贴子,可你好长时间不上来,我也不知你搞定没有。 queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 用户总表 while ...........", null, true, Load.ALL));SQL语句有问提。 select * from 数据库表名 where 姓名=王龙 and 年龄=12这个语句根据你的实际情况而定。自己写吧,有什么问题再问。
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。反之。
你在自己试试。呵呵!
我想通过点击按钮打开另一个表,我的代码有错误吗? void jButton1_actionPerformed(ActionEvent e) {queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 单位总表 ", null, true, Load.ALL));jdbTable1.setDataSet(queryDataSet1);
}
我的代码不好使啊,愁死我了!!
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)
不能对一个开着的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.
你在试试。有什么问题再问。呵呵。
呵呵,建议你把JTABLE设成STATIC 的。
QueryDataSet是用来执行你的SQL语句的。
如果你的数据库不变的话。你只需关闭原来的QueryDataSet.然后建立一个新的。上面的你看一下。呵呵。
点击这个按钮能不能查询表里,姓名字段等于‘王龙’并且密码等于‘11’的记录,如果找到了,弹出对话框‘找到了’,如果没找到,弹出对话框‘没找到’。这样吧,谁能把我下面这句话翻译成jbuilder语言:
如果没有找到,那么
弹出对话框:‘没找到’
如果找到了
弹出对话框:‘找到了’
JOptionPane.showConfirmDialog(null, "找到了","Warning",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null);
else
JOptionPane.showConfirmDialog(null, "没找到","Warning",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,null);
我写成 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是空的,那么弹出对话框“没有找到”,可是我的用户总表里有数据啊,为什么还要弹出‘没有找到’?
这个帖子你都提了好久了,几乎天天我都看这个贴子,可你好长时间不上来,我也不知你搞定没有。
queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * from 用户总表 while ...........", null, true, Load.ALL));SQL语句有问提。
select * from 数据库表名 where 姓名=王龙 and 年龄=12这个语句根据你的实际情况而定。自己写吧,有什么问题再问。
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);试试!
只用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,"没有找到!!");
}
如下面的程序
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,"没有找到!!");
}