在sql2000里
问个简单的问题1:
<td><%=rs.getDouble("STANDARD_VALUE")/rs.getDouble("ACTUAL_VALUE")%>倍</td>
为什么不能相除
问题2:
<%=rs.getString("ALARM_TIME")%> 字段是datetime的
为什么是这个结果
2006-08-16 16:50:00.0
我想要的是
2006-08-16 16:50:00
该怎样格式化他
问题3 :
rs.getDouble("STANDARD_VALUE")
这样的我想格式化成固定格式该怎样做呢
问个简单的问题1:
<td><%=rs.getDouble("STANDARD_VALUE")/rs.getDouble("ACTUAL_VALUE")%>倍</td>
为什么不能相除
问题2:
<%=rs.getString("ALARM_TIME")%> 字段是datetime的
为什么是这个结果
2006-08-16 16:50:00.0
我想要的是
2006-08-16 16:50:00
该怎样格式化他
问题3 :
rs.getDouble("STANDARD_VALUE")
这样的我想格式化成固定格式该怎样做呢
<%=rs.getString("ALARM_TIME")%> 字段是datetime的
为什么是这个结果
2006-08-16 16:50:00.0
我想要的是
2006-08-16 16:50:00这个问题 这样解决
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //////格式化日期
String curdate=dateformat.format(rs.getTimestamp("ALARM_TIME"));
<td><%=rs.getDouble("STANDARD_VALUE")/rs.getDouble("ACTUAL_VALUE")%>倍</td>
为什么不能相除
可以相除
问题出正在这里
该怎样解决
<tr class='tr1' align="center" valign="middle">
<td><%=curdate%></td>
<td><%=rs.getString("SITE_NAME")%></td>
<td><%=rs.getString("INFECTANT_ID")%></td>
<td><%=rs.getFloat("STANDARD_VALUE")%></td>
<td><%=rs.getFloat("ACTUAL_VALUE")%></td>
<td><%=rs.getDouble("STANDARD_VALUE")/rs.getDouble("ACTUAL_VALUE")%>倍</td>
<td><%=rs.getString("MEMO")%></td>
</tr>
一个字段不能读两次 ,该怎样做 ???????????????????
别的语言随便啊 为什么 这个破东西这样啊
一个字段不能读两次 ,该怎样做 ???????????????????如果是像你说的那个问题,可以这样解决:
Double AAA=rs.getFloat("ACTUAL_VALUE"); //用将数据提取出来赋给引用
然后多次使用引用像这样:<%=AAA%>。 这样也很明了的,会用吧?
ACTUAL_VALUE 和STANDARD_VALUE 都是 numeric 型的
如果是varchar 这个的就可以
错误提示是:
org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: -1 in the jsp file: nullGenerated servlet error:
[javac] Compiling 1 source file
[javac] D:\jboss3\server\lngprs\work\MainEngine\localhost\_\weblist\bjinfocount_jsp.java:130: incompatible types
[javac] found : double
[javac] required: java.lang.Double
[javac] Double AAA=rs.getDouble("STANDARD_VALUE");
[javac] ^
[javac] 1 errorjboss里的
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
sConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ol.java:677)
at java.lang.Thread.run(Thread.java:534)
怎么写成Double?应该是double啊。
double AAA=rs.getDouble("STANDARD_VALUE");没问题吧?格式化double数据:
double d = 1.23453;
NumberFormat f = NumberFormat.getNumberInstance();
f.setMaximumFractionDigits(2); // 保留小数后2位
System.out.println(f.format(d));
或
d = new BigDecimal("" + d).setScale(2, BigDecimal.ROUND_HALF_EVEN)
.doubleValue(); // 保留小数后2位
System.out.println(d);
willishz(光与影的奇迹)
double AAA=rs.getDouble("STANDARD_VALUE");没问题吧?
这样的话////
sql里的字段类型是 ACTUAL_VALUE 和STANDARD_VALUE 都是 numeric 型的
出现错误提示是:
org.apache.jasper.JasperException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 2.
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
错误提示 :
ResultSet can not re-read row data for column
是微软的驱动程序的兼容性有问题 。
可以说是人为的结果。 类似现在的网通和电信似的,为了他们自己的利益,人为的造成用户互相访问速度很差。
.如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有image或text类型)
2.如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text类型字段,那么可以按照无序获取
3。如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误
4。如果想不查询语句中有没有image或text类型字段,都可以不按照顺序获取,或重复获取。那么就必须更换驱动,改用第三方的。
和别的类型没有什么关系,和numeric 也没有关系。
不知道现在的高人 能不能 在不换驱动的情况下能解决这个问题呢,
我的字段里有text 类型的
google"jtds" 也肯定能找到了