String ssql="INSERT INTO usercode VALUES ('"+name1+"','"+password+"','"+email+"','500','"+url+"','"+QQ+"')";有问题吗?在SQL Seve

明行 测试开发  2003-09-13 06:54:50
String ssql="INSERT INTO usercode VALUES ('"+name1+"','"+password+"','"+email+"','500','"+url+"','"+QQ+"')";有问题吗?在SQL Sever中为什么没有出错提示,可就是没有insert到数据表中去,为什么啊?我的查询语句都是正确的,用Access也没有问题?是不是没有提交啊?怎么提交呢?
...全文
627 点赞 收藏 59
写回复
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
junyi2003 2003-09-16
为你寒一下。

总结教训吧......阿门
回复
明行 2003-09-16
找到问题了,不细心啊。
try {
conn = DriverManager.getConnection(sConnStr);//就在这里,用户与密码没有写
stmt = conn.createStatement();
conn.setAutoCommit(false);
stmt.executeUpdate(sql);
conn.commit();
}
catch(SQLException ex){
conn.rollback();
System.err.println("aq.executeQuery: " + ex.getMessage());
}
finally{
conn.setAutoCommit(true);
stmt.close();
conn.close();
}
回复
明行 2003-09-16
怎么回事啊,结帐都不能啊,脚本有错,我晕。
回复
明行 2003-09-16
应该是权限问题!
回复
junyi2003 2003-09-15
这些通不过都会抛出SQLException,请查一下api文档啊。
那么当然也要用try......catch......
回复
blue999star 2003-09-15

conn.commit();
conn.close();
回复
明行 2003-09-15
都吃饭去了撒?呵呵...
我吃不下!:(
回复
明行 2003-09-15
对,有道理,我接受!
不过我写成这样的:
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
conn.setAutoCommit(false);
stmt.executeUpdate(sql);
conn.commit();
}
catch(SQLException ex){
conn.rollback();//这里通不过
System.err.println("aq.executeQuery: " + ex.getMessage());
}
finally{
conn.setAutoCommit(true);//这里通不过
stmt.close();//这里通不过
conn.close();//这里通不过
}
可是统计通不过啊?什么问题吗?
回复
junyi2003 2003-09-15
建议和数据库有关的

try{
......
}
catch (Exception e){
......
}
finally
{
......
db.close()
......
}
回复
junyi2003 2003-09-15
出了错,也不关闭连接。update出错,下面的close不运行的。
回复
明行 2003-09-15
程序结构有什么样的问题?
回复
junyi2003 2003-09-15
......
如果这样写的话,我觉得程序结构有问题,虽然不影响运行结果。
回复
明行 2003-09-15
我觉得只是commit的原因,和连接关了无关。
我的javaBean中的一个方法:
//<!--定义数据操作-->
public void executeUpdate(String sql) {
stmt = null;
rs = null;
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
stmt.close();
conn.close();
}
catch(SQLException ex){
System.err.println("aq.executeQuery: " + ex.getMessage());
}
}
可是不知道在这里应该怎么用commit?
回复
mountsnow 2003-09-15
sql语句错了,应该是:
String ssql="INSERT INTO usercode VALUES ('"+name1+"','"+password+"','"+email+"',500,'"+url+"','"+QQ+"')";
而且你这么写的话,必须将列名与插入值一一对应,另外,还需要commit一下,如:

try{
conn.setAutoCommit(false);
String ssql=...
regBean.executeUpdate(ssql);
commit();
} catch(SQLException e) {
rollback();
System.out.println(e.getMessage());
} finally {
conn.setAutoCommit(true);
关闭...
}

回复
jiaminxy 2003-09-15
第一:连接关的太早,不是时候;
二:没有COMMIT....
回复
junyi2003 2003-09-15
我已经快没想法了。

<% }
else
{
rs.close();
//int iniJf=500;
String ssql="INSERT INTO usercode VALUES ('"+name1+"','"+password+"','"+email+"','500','"+url+"','"+QQ+"')";
regBean.executeUpdate(ssql);
regBean.closeStmt(); /***改一下位置***/
regBean.closeConn(); /***我想你的SQL语句应该没有问题***/
} %>


试试看吧。
回复
明行 2003-09-15
我是在自己的机器上用access做就都对的,在40it.net上申请了一个空间,用它们的MSSQL就不对了,不过select语句是对的。
回复
明行 2003-09-15
to:goes(高思)
String ssql="INSERT INTO usercode (name,password,email,jf,www,oicq) VALUES ('"+name1+"','"+password+"','"+email+"',500,'"+url+"','"+QQ+"')";
还是不行。
回复
jiaminxy 2003-09-15
junyi2003(超级菜鸟) :说的对~顶你!!!!!
回复
明行 2003-09-15
String ssql="INSERT INTO usercode (name,password,email,jf,www,oicq) VALUES ('"+name1+"','"+password+"','"+email+"','500','"+url+"','"+QQ+"')";
写全了,还是不行。

to: junyi2003(超级菜鸟)
rs.close(); //这个关闭查询
regBean.closeStmt(); /***连接池怎么定义的?***/
regBean.closeConn(); /***字面上来看很像关闭数据库连接啊!***/
上面是关闭的查询语句。regBean是我的数据库连接Bean,regBean.executeUpdate(ssql); 或
regBean.executeQuery(sql); 做了很多动作细节(是在javaBean中做的),我用access都已经操作正常的了。
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告