在插入数据时用的判断语句应该是什么?

tylhy 2004-07-01 08:38:32
在程序中用 if(st.next()) 会出错那应该用什么?

import java.io.*;
import java.sql.*;
import javax.swing.*;

public class a3{
public static void main(String args[]){
try{
String pass="123";
String sname="abc";
String ia="ccc";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String su="jdbc:odbc:driver={Microsoft Access DriVer (*.mdb)};DBQ=lga.mdb";
Connection conn=DriverManager.getConnection(su,"","");
Statement state=conn.createStatement();
String sSQLi="INSERT INTO User VALUES('"+sname+"','"+pass+"','"+ia+"')";
int st=state.executeUpdate(sSQLi);
if(st.next()){
JOptionPane.showMessageDialog(null,"已经添一条记录","姓名:"+sname+"地址: "+ia+" 密码: "+pass,JOptionPane.INFORMATION_MESSAGE);}
else{
JOptionPane.showMessageDialog(null,"添加记录失败!","添加状态:",JOptionPane.INFORMATION_MESSAGE);}
state.close();
conn.close();}
catch(Exception e){e.printStackTrace();}}
}

...全文
189 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wht5555 2004-07-01
  • 打赏
  • 举报
回复
up
imA 2004-07-01
  • 打赏
  • 举报
回复
import java.io.*;
import java.sql.*;
import javax.swing.*;

public class a3{
public static void main(String args[]){
try{
String pass="123";
String sname="abc";
String ia="ccc";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String su="jdbc:odbc:driver={Microsoft Access DriVer (*.mdb)};DBQ=lga.mdb";
Connection conn=DriverManager.getConnection(su,"","");
Statement state=conn.createStatement();
String sSQLi="INSERT INTO User VALUES('"+sname+"','"+pass+"','"+ia+"')";
int st=state.executeUpdate(sSQLi);
if(st>0){
JOptionPane.showMessageDialog(null,"已经添一条记录","姓名:"+sname+"地址: "+ia+" 密码: "+pass,JOptionPane.INFORMATION_MESSAGE);}
else{
JOptionPane.showMessageDialog(null,"添加记录失败!","添加状态:",JOptionPane.INFORMATION_MESSAGE);}
state.close();
conn.close();}
catch(Exception e){e.printStackTrace();}}
}
wandou999 2004-07-01
  • 打赏
  • 举报
回复
int st=state.executeUpdate(sSQLi);--->int改成ResultSet
smallcosmos 2004-07-01
  • 打赏
  • 举报
回复
int st=state.executeUpdate(sSQLi);
这是一条执行更新(插入或删除)语句,返回的是更新(插入或删除)影响的纪录数
只要判断st > 0就可以知道更新是否被执行

而你写的是if(st.next()){代码...}对于一个INT的变量没有这个.next()
在执行查询的时候返回的才是ResultSet
MyXin 2004-07-01
  • 打赏
  • 举报
回复
if(st.next()){ ----------> if(st>=0) 即可!
icystone 2004-07-01
  • 打赏
  • 举报
回复
stmt.executeUpdate返回的是受影响的纪录的条数,你这么写肯定不对呀!
xujun581 2004-07-01
  • 打赏
  • 举报
回复
ResultSet st=state.executeUpdate(sSQLi);
if(st.next())
haroyy 2004-07-01
  • 打赏
  • 举报
回复
先select查询,如果记录不存在,再执行插入操作
tylhy 2004-07-01
  • 打赏
  • 举报
回复
可是应该怎么样写判断呢?
FrankTong 2004-07-01
  • 打赏
  • 举报
回复
st是int,不是ResultSet你要注意
ecaol 2004-07-01
  • 打赏
  • 举报
回复
UP

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧