| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1100 人关注过本帖
标题:[求助]看看这个程序出了什么问题?
取消只看楼主 加入收藏
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
 问题点数:0 回复次数:10 
[求助]看看这个程序出了什么问题?
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class readquestion extends JFrame implements ActionListener
{
databasemanager mb=new databasemanager();
JTextArea test=new JTextArea(100,100);
JButton read;
//JCheckBox box[];
Container c;
ResultSet rs;
public readquestion()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,500);
read=new JButton("读取题目");
//read.addActionListener(this);
c=getContentPane();
c.setLayout(new BorderLayout());
JPanel pane=new JPanel();
//pane.setLayout(new GridLayout());
pane.add(test);

JPanel pane2=new JPanel();
//pane.setLayout(new GridLayout());
pane2.add(read);
c.add(pane,BorderLayout.CENTER);
c.add(pane2,BorderLayout.SOUTH);
show();
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="读取题目");
{
String str,s;
int x=2;
//x=(int)Math.round(Math.random()*10/3);
str="select question from question1 where question='"+x+"'";
rs=mb.getResult(str);

try{
while(rs.next())
{
s=rs.getString(2);
//s=rs.getString(2);
test.append(s);
mb.closeConnection();
this.dispose();
}
}catch(SQLException sql){
System.out.println(sql.toString());
}

}
}
public static void main(String args[])
{
new readquestion();
}
}
这个程序的最终目的是将数据库表的一个字段的内容显示出来,但是现在却无法实现这个目的,希望各位高手能给指点指点,谢谢!下面这个程序是上面那个程序所用到的datamanager类:
import java.sql.*;
public class databasemanager
{
Connection con;
ResultSet rs;
Statement stmt;
public databasemanager()
{
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=data.mdb");
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch ( ClassNotFoundException cnfex ) {
System.err.println("Failed to load JDBC/ODBC driver." );
cnfex.printStackTrace();
System.exit( 1 ); // terminate program
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
}
}
public ResultSet getResult(String strSQL)
{
try{
rs=stmt.executeQuery(strSQL);
return rs;
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
return null;
}

}
public boolean updateSql(String strSQL)
{
try{
stmt.executeUpdate(strSQL);
con.commit();
return true;

}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
return false;
}

}
public void closeConnection()
{
try
{
con.close();
}
catch(SQLException sqle)
{
System.out.println(sqle.toString());
}
}

}

搜索更多相关主题的帖子: public import test 
2006-06-09 01:25
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
Note: readquestion.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
这是编译后显示的内容

以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-09 13:12
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
应该不是这个问题吧,不知道
str="select question from question1 where question='"+x+"'";
rs=mb.getResult(str);

try{
while(rs.next())
{
s=rs.getString(2);
//s=rs.getString(2);
test.append(s);
mb.closeConnection();
this.dispose();
}
}catch(SQLException sql){
System.out.println(sql.toString());
}
程序是否有问题呢?

以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-09 20:31
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
应该不是这个问题吧,不知道大家明白我的意思没有?我是说这个程序已经可以运行,但是按了“读取题目”这个按钮后,文本区域里显示不了数据库表中的字段的内容。
str="select question from question1 where question='"+x+"'";
rs=mb.getResult(str);

try{
while(rs.next())
{
s=rs.getString(2);
//s=rs.getString(2);
test.append(s);
mb.closeConnection();
this.dispose();
}
}catch(SQLException sql){
System.out.println(sql.toString());
}
这段程序是否能否寻到数据库表中的内容呢?请各位高手给给意见!

[此贴子已经被作者于2006-6-9 21:28:28编辑过]


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-09 20:32
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 

这是改过的程序:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class readquestion extends JFrame implements ActionListener
{
databasemanager mb=new databasemanager();
JTextArea test=new JTextArea(100,100);
JButton read;
//JCheckBox box[];
Container c;
ResultSet rs;
public readquestion()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,500);
read=new JButton("读取题目");
read.addActionListener(this);
c=getContentPane();
c.setLayout(new BorderLayout());
JPanel pane=new JPanel();
//pane.setLayout(new GridLayout());
pane.add(test);

JPanel pane2=new JPanel();
//pane.setLayout(new GridLayout());
pane2.add(read);
c.add(pane,BorderLayout.CENTER);
c.add(pane2,BorderLayout.SOUTH);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="读取题目");
{
String str,s;
int x;
x=(int)Math.round(Math.random()*10);
str="select question from question1 where question_id='"+x+"'";
rs=mb.getResult(str);
StringBuffer buf=new StringBuffer();
try{
while(rs.next())
{
s=rs.getString(3);
//s=rs.getString(2);
buf.append(s);
test.setText(buf.toString());
mb.closeConnection();
this.dispose();
}
}catch(SQLException sql){
System.out.println(sql.toString());
}

}
}
public static void main(String args[])
{
new readquestion();
}
}
而出现的问题是:
“java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 标准表达式中数
据类型不匹配”。其中question_id字段的数据类型是数字,而question字段的数据类型是备注型。请高手帮忙找找哪个表达式出了问题了?谢谢

[此贴子已经被作者于2006-6-9 22:28:24编辑过]


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-09 20:40
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 

希望各位高手能给出你宝贵的意见,谢谢!


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-09 22:35
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
这样还是不行,都还是上面那个老问题

以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-10 22:08
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 
这样不行啊,老大。运行后又出现新的问题:
java.sql.SQLException: ResultSet is closed
然后我把 mb.closeConnection();
this.dispose();
这两条语句提到了循环外面,结果还是这样。

以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-11 23:35
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 

谢谢啊!我再修改下看看。


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-13 12:32
huangcx
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-5-26
收藏
得分:0 

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class readquestion extends JFrame implements ActionListener
{
databasemanager mb=new databasemanager();
JTextArea test=new JTextArea(100,100);
JButton read;
//JCheckBox box[];
Container c;
ResultSet rs;
public readquestion()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,500);
read=new JButton("读取题目");
read.addActionListener(this);
c=getContentPane();
c.setLayout(new BorderLayout());
JPanel pane=new JPanel();
//pane.setLayout(new GridLayout());
pane.add(test);

JPanel pane2=new JPanel();
//pane.setLayout(new GridLayout());
pane2.add(read);
c.add(pane,BorderLayout.CENTER);
c.add(pane2,BorderLayout.SOUTH);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="读取题目");//我最近改进的程序,发现了问题主要出现在这个“读取题目”这个按钮上,但找不出解决方法。
{
String str,s;
int x;
x=(int)Math.round(Math.random()*10);
str="select question from question1 where question_id='"+x+"'";
rs=mb.getResult(str);
StringBuffer buf=new StringBuffer();
try{
while(rs.next())
{
s=rs.getString(3);
//s=rs.getString(2);
buf.append(s);
test.setText(buf.toString());
mb.closeConnection();
this.dispose();
}
}catch(SQLException sql){
System.out.println(sql.toString());
}

}
}
public static void main(String args[])
{
new readquestion();
}
}


以我平凡的天分和不平凡的毅力,可完成所有事!
2006-06-19 12:37
快速回复:[求助]看看这个程序出了什么问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055165 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved