java的preparestatement中setFloat的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 23:34:52
代码:
PreparedStatement ps = con.prepareStatement(
"update asset set name='?', bigname='?', smallname='?',brand='?', type='?', price=?, buydate='?', state=?, remarks='?' where id = ?");
.....
Float sss = Float.parseFloat(txtJiage.getText());
ps.setFloat(6, sss);
.....

txtJiage是个文本框,要接受输入的价格然后转换成Float型

然后会报错:在Float sss这一行
incompatible types; found:float,required:java.lang.Float at line
不知道如何解决

还有setFloat应该如何设置啊

你的sql语句有问题,你'?' 你把? 当做一个字符串 ,而不是占位符,而且这样的写法不正规,
改为
private static final String SQL_SELECT_ASSET_SQL=" update " +
" asset "+
" set "+
" name= ?, "+
" bigname=?, "+
" smallname=?,"+
" brand= ?, "+
" type=?, "+
" price=?,"+
" buydate=?, "+
" state=?, "+
" remarks=? "+
" where "+
" id = ?";

PreparedStatement ps = con.prepareStatement(SQL_SELECT_ASSET_SQL);

把Float sss = Float.parseFloat(txtJiage.getText());
float sss=Float.parseFloat(txtJiage.getText());
试试。