急!!java中运行时出错

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:52:44
拜托高手们帮我看下,感激不尽
错误为:java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced

补充:sqlStr1和sqlStr2有执行,sqlStr3没有执行。

代码为:
sqlStr1="select * from lib1 where A='"+str1+"' and B='"+str2+"'";
result1=statement.executeQuery(sqlStr1);
if(result1.next())
{
if(result1.getString(1).equals("Y"))
{
JOptionPane.showMessageDialog(null,"OK","",JOptionPane.PLAIN_MESSAGE);

sqlStr2="UPDATE lib1 SET X='N' where A="+"'"+str1+"'";
result2=statement.executeQuery(sqlStr2);
sqlStr3="INSERT INTO lib2 VALUES('"+str+"','"+str1+"','"+str2+"','"+str3+"','"+str4+"')";
result3=statement.executeQuery(sqlStr

sql_java:结果提示说INTER语句与COLUMN FOREIGN KEY 约束 'FK_lib12_lib1'冲突。该冲突发生于数据库‘lib’,表‘lib1’,column 'a'。
补充:你的问题在于出现了外键冲突,请检查表lib1,插入的列a的值之前,是否存在a的外键值。若没有,必须先插入外键值
==============
请将Insert和update的statement.executeQuery()改成:
statement.executeUpdate()。
另外同一个statement最好不要执行多个sql语句,以免出现游标用尽的情况。在执行下个sql前将statement释放掉

插入语句没有返回值
这样就 OK了

statement.execute(sqlStr3);

要练习看异常java.sql.SQLException 说明是SQL异常

No ResultSet set was produced
不懂英文可以蒙, 大致意思ResultSet set 前面+个NO,肯定是 没有给 ResultSet 的 SET值
说白了就是没有返回值

将Insert和update的的SQL语句的执行statement.executeQuery()改成: statement.executeUpdate()。

1.建议使用statement和ResultSet每次只执行一个SQL语句然后将用Close将其释放掉。
2.当不学要返回结果集时用statement.executeUpdate()执行,否则容易出现错误。
3.不咬用statement进行拼装,实际开发中已经很少用了。速度慢还容易出错
4.怀疑你的数据库驱动类有问题。直链的三个包是否正确导入。

SQL数据库insert语句、update语句和delete语句都是有返回值的!如果你insert或者update或者delete数据库中的数据成功的话,是会返回一个int的值,说你的操作影响了多少行数据!不成功的话,就返回0值!