向前进8868
2013-12-12 13:33
采纳率: 100%
浏览 3.3k
已采纳

SQLServerException: 没有为参数号 8 设置值

public String getAddMessage()
{ String str="";
Connection con;
PreparedStatement sql;
try { String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=BookStore";
con=DriverManager.getConnection(uri,"sa","sa");
String insertCondition="INSERT INTO Books VALUES (?,?,?,?,?,?,?)";//数据库中第一个字段为id,设为了自动增长
sql=con.prepareStatement(insertCondition);
if(name.length()>0)
{
sql.setString(2,name);
sql.setString(3,author);
sql.setString(4,sort);
sql.setFloat(5,price);
sql.setString(6,publisher);
sql.setString(7,date);
sql.setString(8,introduction);
int m=sql.executeUpdate();
if(m!=0)
{ str="添加"+m+"条书籍信息成功";
ok=true;
}
else
{ str="添加书籍信息失败";
}
}
else
{ str="必须要有图书名称";
}
con.close();
}
catch(SQLException e)
{ str="您还没有填写书籍信息或"+e;
}
return str;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • a_jian 2013-12-13 02:53
    已采纳

    INSERT INTO Books VALUES (?,?,?,?,?,?,?)
    你如果这个写的话,哪么你就需要把sql.setString(1,id);设值近去才行的
    当然id也可以 UUID.randomUUID().toString() 这样获得的

    也可以改成这样:

    INSERT INTO Books(字段2~字段7) VALUES (?,?,?,?,?,?)
    sql.setString(1,name);
    sql.setString(2,author);
    sql.setString(3,sort);
    。。。。
    。。。
    。。

    点赞 打赏 评论

相关推荐 更多相似问题