如何积极
String v1 = lbl_READING_NUMBER.getText();
int a = Integer.parseInt(jLabel_PREVIOUS_READ.getText());
int b = Integer.parseInt(jLabel_PRESENT_READ.getText());
int cm = a-b;
try{
String sql = "UPDATE reading SET Cubic_meter=' "+cm+" ' WHERE Reading_Number=' "+v1+"' ";
ps = conn.prepareStatement(sql);
rs=ps.executeUpdate();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
此代码显示负Cubic_meter栏负整数转换在我的数据库,要有一个积极的Cubic_meter即使jLabel_PREVIOUS_READ.getText()
比jLabel_PRESENT_READ.getText()
较小。如何积极
这听起来像你可能会寻找Math.abs
:
返回一个int值的绝对值。如果参数不是负数,则返回参数。如果参数是否定的,则返回否定参数。
(也有版本,对于其他类型的 — long
,float
,double
...)
有一个重要的警告:
注意,如果参数等于值
Integer.MIN_VALUE
,最负的可表示的int值,结果是相同的值,这是负值。
请给我指导我如何将它插入我的代码。 谢谢您的回答。 – 2014-09-18 22:34:00
@JeezzJohn:'int cm = Math.abs(a-b);'? – 2014-09-18 22:37:56
好的,谢谢你,先生 – 2014-09-18 22:42:44
你能用这个吗?
value=value*-1; //simply multiply by -1.
您还可以设置一个条件来检查值是否为if等语句的负数。
if(value<0)
value=value*-1; //simply multiply by -1.
好吧,先生,我会试试这个。 – 2014-09-18 22:37:31
Crowder先生提供的解决方案实施起来非常简短。你可以用它作为'value = Math.abs(value);'。要么工作。 – MarGar 2014-09-18 22:41:58
Math.abs像T.J.克劳德的建议,但解析输入时也做
捕捉NumberFormatException的
改变你的SQL语句中使用绑定变量,这样
String sql = "UPDATE reading SET Cubic_meter=? WHERE Reading_Number= ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, cm); // assuming always positive
ps.setInt(2, v1);
http://en.wikipedia.org/wiki/Prepared_statement
使用绑定变量是一个很好的做法防范SQL注入。
好的,先生,谢谢。 – 2014-09-18 22:39:50
先生我按照您的建议,但知道发生异常说:“没有指定参数1的值” String sql =“更新读取集Cubic_meter =?其中Reading_Number =?”; ps = conn。prepareStatement(SQL); ps.executeUpdate(); ps.setInt(1,cm); ps.setInt(2,v1); – 2014-09-18 22:59:53
你需要把executeUpdate放在最后 – ChoChoPK 2014-09-18 23:07:53
试试这个:
int cm = a-b;
int cm2 = cm*(-1);
try{
String sql = "UPDATE reading SET Cubic_meter=' "+cm2+" ' WHERE Reading_Number=' "+v1+"' ";
ps = conn.prepareStatement(sql);
rs=ps.executeUpdate();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
无关你的正/负的问题,但作为ChoChoPK指出,最好使用参数化查询,而不是字符串连接。原因如下:http://xkcd.com/327/ – 2014-09-19 07:34:20
如果下面的答案之一回答你的问题,SO的工作方式,你会想要“接受”答案。详细信息:http://stackoverflow.com/help/someone-answers但只有当它真的回答。 – 2014-09-19 07:35:17