晕阿,实在没什么话好说了,这样也行,
我是eclipse3.0.1,
Access在NTFS分区上,安全权限是everyone-fullcontrol,共享权限everyone-fullcontrol
连接代码是这样的:
System.out.println("Start......");
// mSmg.save("100001","aaa");
String sqlInsert ="insert into tbl_rcvmbl(mobile,info,datet) select mobile,info,#2005-5-25# from tbl_rcvmbl";
int sqlResult = 0 ;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:/我的项目/昆山供电局/短消息/Kunshan/SMsystem.mdb";
Connection conn = DriverManager.getConnection(url,"","");
System.out.println("已找到数据库。");
Statement stmtNew =conn.createStatement();
System.out.println("已建立数据库连接");
sqlResult=stmtNew.executeUpdate(sqlInsert);
System.out.println("Sql result is:"+ sqlResult);
stmtNew.close();
System.out.println("已关闭数据库连接");
}
catch (SQLException e1)
{
System.out.println(e1.getMessage());
}
catch (Exception e2)
{
System.out.println(e2.getMessage());
}
System.out.println("over.");执行的结果是:
Start......
已找到数据库。
已建立数据库连接
Sql result is:6
已关闭数据库连接
over.现在数据库里有6条记录,这个没错,但是插入了6条记录后,数据库没反应,再次运行的话,执行结果也没有变。大家帮我看看吧,
我是eclipse3.0.1,
Access在NTFS分区上,安全权限是everyone-fullcontrol,共享权限everyone-fullcontrol
连接代码是这样的:
System.out.println("Start......");
// mSmg.save("100001","aaa");
String sqlInsert ="insert into tbl_rcvmbl(mobile,info,datet) select mobile,info,#2005-5-25# from tbl_rcvmbl";
int sqlResult = 0 ;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:/我的项目/昆山供电局/短消息/Kunshan/SMsystem.mdb";
Connection conn = DriverManager.getConnection(url,"","");
System.out.println("已找到数据库。");
Statement stmtNew =conn.createStatement();
System.out.println("已建立数据库连接");
sqlResult=stmtNew.executeUpdate(sqlInsert);
System.out.println("Sql result is:"+ sqlResult);
stmtNew.close();
System.out.println("已关闭数据库连接");
}
catch (SQLException e1)
{
System.out.println(e1.getMessage());
}
catch (Exception e2)
{
System.out.println(e2.getMessage());
}
System.out.println("over.");执行的结果是:
Start......
已找到数据库。
已建立数据库连接
Sql result is:6
已关闭数据库连接
over.现在数据库里有6条记录,这个没错,但是插入了6条记录后,数据库没反应,再次运行的话,执行结果也没有变。大家帮我看看吧,
用execute(String sql)
有什么方法可以查看false的原因么?
很有可能是,#2005-5-25#的问题
你只插入前两项试试
...
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
String sql="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=games.mdb";
Connection con = DriverManager.getConnection(sql,"","");
Statement stmtNew=con.createStatement() ;
.
....
{
String name = loginobj.username;
String password = loginobj.userpassword;
String sex1 = loginobj.usersex;
String age = loginobj.userage;
String email=loginobj.usermail;
String oicq = loginobj.useroicq;
String sqlinster="INSERT INTO users(name,password,sex,age,E-mail,OICQ) VALUES(name,password,sex1,age,email,oicq)";
boolean sqlresult;
sqlresult=stmtNew.execute(sqlinster);
toclient.println("恭喜你,你已经注册成功,你可以登陆游戏室了!");
}
con.close();
con.setAutoCommit(false)sqlresult=stmtNew.execute(sqlinster);
后加con.commit();
access中用:insert into databaseName(field..) select field...;
sqlserver中都用:insert into databaseName(field..) values (value...);
还没学过呢,不过在做sqlserver中是没遇到过问题!
本人最喜欢别人的问题,有一般问题可以问我的:188231055;[email protected]
insert into ....select ....from... 是批量插入
insert into ....values... 是插入一条记录
他们的sql是一样的
这个是否有问题,为什么运行说是insert into语句的语法错误. 我用的是acess数据库插入.
boolean sqlresult;
sqlresult=stmtNew.execute(sqlinster);
我的程序改成这样了.可运行后的异常是:[Microsoft][ODBC Microsoft Access Driver]参数不足,期待是2.
哪位给点意见!多谢了.
最好是全
所以被搞晕了.
有抄了一个函数
public static void getResult() {
Connection con = null;
Statement stmt = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//注意URL的写法
String url =
"jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\我的项目\\昆山供电局\\短消息\\Kunshan\\SMsystem.mdb";
con = DriverManager.getConnection(url, "", "");
stmt = con.createStatement();
String query = "insert into tbl_rcvmbl(mobile,info,datet) values('0011','ssss',#2005-5-20#)";
stmt.execute(query);
ResultSet rs = stmt.executeQuery("select * from tbl_rcvmbl");
while (rs.next()) {
String str = rs.getString("mobile");
System.out.println(str);
}
rs.close();
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if (stmt != null) {
try {
stmt.close();
}
catch(Exception e) { }
}
if (con != null) {
try {
con.close();
}
catch(Exception e) { }
} }
}结果就有反应了,包括原先的程序,虽然显示没变,还是false,可是数据库中记录插进去了,
这难道就是rpwt?
就是要一个单引号把值包含着,我在SQL企业管理器中操作的时候就看到了插入的时候是必须这样做的,要不也会提示错误!