在插入数据时用的判断语句应该是什么?
在程序中用 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();}}
}
问题点数:88、回复次数:11Top
1 楼ecaol(大家先别冲动,此事还须从长计议。)回复于 2004-07-01 08:41:17 得分 0
UPTop
2 楼FrankTong(彤瞳)回复于 2004-07-01 08:42:08 得分 0
st是int,不是ResultSet你要注意Top
3 楼tylhy(小小)回复于 2004-07-01 08:43:15 得分 0
可是应该怎么样写判断呢?Top
4 楼haroyy(天平)回复于 2004-07-01 09:50:51 得分 0
先select查询,如果记录不存在,再执行插入操作Top
5 楼xujun581(踏雪无痕)回复于 2004-07-01 09:57:43 得分 0
ResultSet st=state.executeUpdate(sSQLi);
if(st.next())Top
6 楼icystone(石冰)回复于 2004-07-01 10:07:02 得分 0
stmt.executeUpdate返回的是受影响的纪录的条数,你这么写肯定不对呀!Top
7 楼MyXin(快乐每一天)回复于 2004-07-01 10:08:00 得分 30
if(st.next()){ ----------> if(st>=0) 即可!Top
8 楼cosmos10051982(程风破浪)回复于 2004-07-01 10:18:11 得分 30
int st=state.executeUpdate(sSQLi);
这是一条执行更新(插入或删除)语句,返回的是更新(插入或删除)影响的纪录数
只要判断st > 0就可以知道更新是否被执行
而你写的是if(st.next()){代码...}对于一个INT的变量没有这个.next()
在执行查询的时候返回的才是ResultSetTop
9 楼wandou999(弯豆)回复于 2004-07-01 11:10:46 得分 0
int st=state.executeUpdate(sSQLi);--->int改成ResultSetTop
10 楼imA(男的不会,会的不男)回复于 2004-07-01 11:29:43 得分 28
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();}}
}
Top
11 楼wht5555(wht)回复于 2004-07-01 11:58:58 得分 0
upTop




