不太难的问题,但我就是不知道,大侠们请帮忙 楼上的,我用了st.execute(sql);也不行呀. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦.忘了说,我用的是ACCESS,JDBC-ODBC桥驱动 因为excute()和excuteUpdate()方法自身会抛出exception,所以你有两种方法:1,在你调用这两个方法的地方加上try-catch块;2,在你的这个方法申明的时候,加上throws exception; 你在Statement st=con.createStatement(); st.executeUpdate(sql);之前用System.out.println("sql=="+sql) ;输出后拷到sql分析器运行一下看没有错。excute()和excuteUpdate()是都可以的,应该是sql有问题。 数据源什么的我已经设好了,以下是源程序,请各位看一下,import java.awt.*;import java.awt.event.*;import java.sql.*;public class Test { Frame f; TextField tf; Button b; Test() { f=new Frame("Test"); tf=new TextField(10); b=new Button("ok"); } void launchFrame() { f.setSize(300,200); f.addWindowListener(new WindowHandler()); f.add(b,BorderLayout.CENTER); f.add(tf,BorderLayout.NORTH); tf.addActionListener(new TextHandler()); b.addActionListener(new TextHandler()); f.setLocation(60,60); f.setVisible(true); } class WindowHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } class TextHandler implements ActionListener { public void actionPerformed(ActionEvent e) { //System.out.println("ok"); String url="jdbc:odbc:schoolDSN"; String sql="CREATE TABLE "+tf.getText()+"(number INTEGER)"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection(url,"sa",""); System.out.println(sql); Statement st=con.createStatement(); st.executeUpdate(sql); con.close(); }catch(Exception ex) {System.out.println("Database error!");} } } public static void main(String args[]) { Test t=new Test(); t.launchFrame(); }} TO Andrawu(Andrawu):我没有sql分析器呀,不知道那里有下载吗?而且我打印出来的sql好像没错呀, 不好意思,我以为你不能编译呢!呵呵!如果这样的话,可不可以把你的sql文贴出来? sql文?就是sql语句吧,在下面:CREATE TABLE ya(number INTEGER,name VARCHAR(10)) 是不是在表名和字段之间少了空格,试试create table ya (number Integer,name varchar(10)) number 是关键字,不能当成列名! 楼上的一语中的,佩服佩服,多谢了,二话不说,给分,以后有什么sql语句的问题就找你了.呵呵. java中,输入10个数,要求出每个数出现的次数,在线等 请教个问题 实现接口,但没有实现里面的全部方法,却能运行! 一个简单的面向对象问题 请问各位专家,用java开发的应用软件,是否有被病毒攻击的可能呢 swt做浏览器如何保存网页文件? 关于用java开发电子商务网站! 四级证对找工作影响有多大? 在线求助 无法加载或找不到主类 ??这是怎么回事 关于JDBC-ODBC连接ACCESS数据库的问题(不设置数据源)? classpath
1,在你调用这两个方法的地方加上try-catch块;
2,在你的这个方法申明的时候,加上throws exception;
Statement st=con.createStatement();
st.executeUpdate(sql);
之前用System.out.println("sql=="+sql) ;
输出后拷到sql分析器运行一下看没有错。
excute()和excuteUpdate()是都可以的,应该是sql有问题。
import java.awt.*;
import java.awt.event.*;
import java.sql.*;public class Test {
Frame f;
TextField tf;
Button b;
Test() {
f=new Frame("Test");
tf=new TextField(10);
b=new Button("ok");
}
void launchFrame() {
f.setSize(300,200);
f.addWindowListener(new WindowHandler());
f.add(b,BorderLayout.CENTER);
f.add(tf,BorderLayout.NORTH);
tf.addActionListener(new TextHandler());
b.addActionListener(new TextHandler());
f.setLocation(60,60);
f.setVisible(true);
}
class WindowHandler extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
class TextHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
//System.out.println("ok");
String url="jdbc:odbc:schoolDSN";
String sql="CREATE TABLE "+tf.getText()+"(number INTEGER)";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(url,"sa","");
System.out.println(sql);
Statement st=con.createStatement();
st.executeUpdate(sql); con.close();
}catch(Exception ex) {System.out.println("Database error!");}
}
}
public static void main(String args[]) {
Test t=new Test();
t.launchFrame();
}
}
我没有sql分析器呀,不知道那里有下载吗?
而且我打印出来的sql好像没错呀,
如果这样的话,可不可以把你的sql文贴出来?
CREATE TABLE ya(number INTEGER,name VARCHAR(10))
二话不说,给分,
以后有什么sql语句的问题就找你了.呵呵.