<!--访问量统计-->
<%
String str = "";
DBSource db = new DBSource();
db.executeQuery("SELECT FIELD1 FROM TABLE1 WHERE ROLE='system'");
db.next();
str = db.getString("FIELD1");
int a = Integer.parseInt(str); //此处报错:For input string: ""
a = a + 1;
String str1 = String.valueOf(a);
db.executeQuery("UPDATE TABLE1 SET A=" + str1);
%>
<!--访问量统计-完-->通过表TABLE1中ROLE='system'的一行来实现访问量统计。已经确认数据库连接没有问题,且表TABLE1中有且仅有一行满足ROLE='system'。在windows下开发,页面运行正常,访问量统计功能也是正确的。可是部署到linux系统后,就会报错:For input string: ""。经过调试,已经确认报错的语句为: int a = Integer.parseInt(str); 原因应该是没有取出值。可是数据库中确实有这个值。望大虾指教!
<%
String str = "";
DBSource db = new DBSource();
db.executeQuery("SELECT FIELD1 FROM TABLE1 WHERE ROLE='system'");
db.next();
str = db.getString("FIELD1");
int a = Integer.parseInt(str); //此处报错:For input string: ""
a = a + 1;
String str1 = String.valueOf(a);
db.executeQuery("UPDATE TABLE1 SET A=" + str1);
%>
<!--访问量统计-完-->通过表TABLE1中ROLE='system'的一行来实现访问量统计。已经确认数据库连接没有问题,且表TABLE1中有且仅有一行满足ROLE='system'。在windows下开发,页面运行正常,访问量统计功能也是正确的。可是部署到linux系统后,就会报错:For input string: ""。经过调试,已经确认报错的语句为: int a = Integer.parseInt(str); 原因应该是没有取出值。可是数据库中确实有这个值。望大虾指教!
若str是"",在windows下也是会报异常的阿
还是先确认下程序是否正确.
int a = Integer.parseInt(str);
写进一个方法中,
要考虑str是否为数字形,
还有 使用Integer.parseInt(str)要截获异常的。try catch surrounding
db.getString("");?????????
db ?????????
确认你linux下:在str = db.getString("FIELD1");这条语句运行完后str 的值是多少.
其实这个和系统无关,关键是数据库的值
这条语句 你首先到 数据库客户端中去执行一下 看看能不能取得数据
估计是取不到还有 parse 时 catch 一下吧 否则 就做个判断,给要parse 的对象附个初始值