Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jasper Reports中的强制转换异常“无法创建报告java.lang.String无法强制转换为java.lang.Integer”_Java_Swing_Casting_Jasper Reports - Fatal编程技术网

Jasper Reports中的强制转换异常“无法创建报告java.lang.String无法强制转换为java.lang.Integer”

Jasper Reports中的强制转换异常“无法创建报告java.lang.String无法强制转换为java.lang.Integer”,java,swing,casting,jasper-reports,Java,Swing,Casting,Jasper Reports,我不熟悉贾斯珀报告。我已经用SQL Server存储过程创建了一个报表。当从Swing框架查看报表时,出现以下异常 Could not create the report java.lang.String cannot be cast to java.lang.Integer 我使用与SQLServer2000中存储过程定义相同的数据类型定义了报表参数 以下是.jrxml文件的一部分,其中显示了存储过程调用的参数和查询 <parameter name="CatID" class="

我不熟悉贾斯珀报告。我已经用SQL Server存储过程创建了一个报表。当从Swing框架查看报表时,出现以下异常

 Could not create the report java.lang.String cannot be cast to java.lang.Integer
我使用与SQLServer2000中存储过程定义相同的数据类型定义了报表参数

以下是.jrxml文件的一部分,其中显示了存储过程调用的参数和查询

  <parameter name="CatID" class="java.lang.String"/>
<parameter name="Start" class="java.lang.Integer"/>
<parameter name="Stop" class="java.lang.Integer"/>
<parameter name="GoldID" class="java.lang.String"/>
<parameter name="Percentage" class="java.lang.Float"/>
<parameter name="Karat" class="java.lang.Integer"/>
<parameter name="DiaGrade" class="java.lang.Integer"/>
<parameter name="StoneGrade" class="java.lang.Integer"/>
<queryString>
    <![CDATA[{call PriceList($P{CatID},$P{Start}  ,$P{Stop},$P{GoldID},$P{Karat},$P{StoneGrade} ,$P{DiaGrade},$P{Percentage} ) }]]>
</queryString>
<field name="Design" class="java.lang.String"/>
<field name="DesignP" class="java.lang.String"/>
<field name="Model" class="java.lang.String"/>
<field name="GoldCode" class="java.lang.String"/>
<field name="CatID" class="java.lang.String"/>
<field name="OrnID" class="java.lang.Integer"/>
<field name="StoneID" class="java.lang.String"/>
<field name="ProfitPer" class="java.math.BigDecimal"/>
<field name="PlatingChg" class="java.lang.Integer"/>
<field name="SetCode" class="java.lang.String"/>
<field name="CompCost" class="java.math.BigDecimal"/>
<field name="USRate" class="java.math.BigDecimal"/>
<field name="CCost" class="java.math.BigDecimal"/>
<field name="Karat" class="java.lang.Integer"/>
<field name="GoldIDConv" class="java.lang.String"/>
<field name="StoneGrade" class="java.lang.Integer"/>
<field name="DiaGrade" class="java.lang.Integer"/>
<field name="CompCost1" class="java.math.BigDecimal"/>
<field name="GCost" class="java.math.BigDecimal"/>
<field name="ACost" class="java.math.BigDecimal"/>
<field name="SCost" class="java.math.BigDecimal"/>
<field name="Cost" class="java.math.BigDecimal"/>
<field name="Percentage" class="java.math.BigDecimal"/>
<field name="Price" class="java.math.BigDecimal"/>

错误很明显:

java.lang.String cannot be cast to java.lang.Integer

您正在尝试将字符串对象强制转换为整数。这是不可能做到的。它们不是同一类型的。因此,请相应地验证输入数据和定义的字段数据类型。其中一个是异常的原因。

。。为什么StoneID是一个字符串?在数据库中定义的,你们能用更少的词说出来吗,然后给我含糊一下?例如,您是说Orn ID在DB中定义为整数,而Stone ID由于某种奇怪的原因在DB中定义为字符串吗?StoneID值的典型形式是什么?@Prog_Anila你能发布存储过程的片段吗?@Prog_Anila你能发布执行报告的代码片段,可能还有完整的stacktrace吗?@Andrew Thompson Stone ID示例是Y,s,Tetc@Shehzad我没有做任何转换,只是创建了一个简单的jasper report.jrxml文件,其中包含IReports,并在指定报表时使用与存储过程的参数列表相同的数据类型指定了参数列表,以自动获取存储过程结果集的字段。
java.lang.String cannot be cast to java.lang.Integer