指定的转换无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 
行 94:             try
行 95:             {
行 96:                 return _sqlMap.QueryForObject<T>(statementName, parameterObject);行 97:             }
行 98:             catch (Exception e)
 源文件: D:\project\shangcheng\Dao\BaseSqlMapDao.cs    行: 96 堆栈跟踪: 
[InvalidCastException: 指定的转换无效。]
   System.Data.SqlClient.SqlBuffer.get_Single() +55
   System.Data.SqlClient.SqlDataReader.GetFloat(Int32 i) +38
   IBatisNet.DataMapper.TypeHandlers.SingleTypeHandler.GetValueByName(ResultProperty mapping, IDataReader dataReader) +71
   IBatisNet.DataMapper.Configuration.ResultMapping.ResultProperty.GetDataBaseValue(IDataReader dataReader) +35
   IBatisNet.DataMapper.MappedStatements.PropertyStrategy.DefaultStrategy.Set(RequestScope request, ResultMap resultMap, ResultProperty mapping, Object& target, IDataReader reader, Object keys) +260
   IBatisNet.DataMapper.MappedStatements.ResultStrategy.ResultMapStrategy.Process(RequestScope request, IDataReader& reader, Object resultObject) +207
   IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForObject(RequestScope request, IDalSession session, Object parameterObject, T resultObject) +149
   IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(IDalSession session, Object parameterObject, T resultObject) +103
   IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForObject(IDalSession session, Object parameterObject) +62
   IBatisNet.DataMapper.SqlMapper.QueryForObject(String statementName, Object parameterObject) +191
   Yuan.Dao.BaseSqlMapDao.QueryForObject(String statementName, Object parameterObject) in D:\project\shangcheng\Dao\BaseSqlMapDao.cs:96映射的代码
 <sqlMap namespace="Product" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <alias>
  <typeAlias alias="Product"  type="Yuan.Business.Model.Ybusiness.Product" />
  </alias>
  <resultMaps>
      <resultMap id="Product_AllColumns" class="Product">
        <result property="Id" column="id" />
        <result property="Prname" column="Prname" />
        <result property="Prhuohao" column="Prhuohao" />
        <result property="Prcolor" column="Prcolor" />
        <result property="Prhaoma" column="Prhaoma" />
        <result property="Prjiage" column="Prjiage" />
        <result property="Phjiage" column="Phjiage" />
        <result property="Przhechou" column="Przhechou" />
        <result property="Primg" column="Primg" />
        <result property="Prcontent" column="Prcontent" />
        <result property="Prpx" column="Prpx" />
        <result property="Prdate" column="Prdate" />
        <result property="Prjianshu" column="Prjianshu" />
        <result property="Prstate" column="Prstate" />
        <result property="Prtop" column="Prtop" />
        <result property="Phit" column="Phit" />
      </resultMap>
  </resultMaps>  <statements>
   <select id="Product_Select" resultMap="Product_AllColumns" parameterClass="int">
        SELECT 
         [id],
         [Prname],
         [Prhuohao],
         [Prcolor],
         [Prhaoma],
         [Prjiage],
         [Phjiage],
         [Przhechou],
         [Primg],
         [Prcontent],
         [Prpx],
         [Prdate],
         [Prjianshu],
         [Prstate],
         [Prtop],
         [Phit]
          FROM Product   </select>   <select id="Product_SelectGet" resultMap="Product_AllColumns"  parameterClass="int" extends="Product_Select">  where id=$Id$
  </select>    
此为DAO层。。
   /// <summary>
        /// 根据PK得到实体,自动AcceptChange
        /// </summary>
        /// <param name="PK">PK</param>
        /// <returns>实体</returns>
        public Product Get(int PK)
        {
            return this.QueryForObject<Product>("Product_SelectGet", PK);
            
        }下为底层操作出错误处       /// <summary>
        /// 查询符合条件泛型ILst
        /// </summary>
        /// <typeparam name="T">泛型</typeparam>
        /// <param name="statementName">SqlMap节点名称</param>
        /// <param name="parameterObject">参数</param>
        /// <returns>泛型IList</returns>
        protected IList<T> QueryForList<T>(string statementName, object parameterObject)
        {
            try
            {
                return _sqlMap.QueryForList<T>(statementName, parameterObject);主要这句提示无法转换
            }
            catch (Exception e)
            {
                throw new IBatisNetException("Error executing query '" + statementName + "' for list<T>.  Cause: " + e.Message, e);
            }
        }       

解决方案 »

  1.   

    全部sqlmapper xml
    <?xml version="1.0" encoding="utf-8" ?>
    <sqlMap namespace="Product" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <alias>
      <typeAlias alias="Product"  type="Yuan.Business.Model.Ybusiness.Product" />
      </alias>
      <resultMaps>
          <resultMap id="Product_AllColumns" class="Product">
            <result property="Id" column="id" />
            <result property="Prname" column="Prname" />
            <result property="Prhuohao" column="Prhuohao" />
            <result property="Prcolor" column="Prcolor" />
            <result property="Prhaoma" column="Prhaoma" />
            <result property="Prjiage" column="Prjiage" />
            <result property="Phjiage" column="Phjiage" />
            <result property="Przhechou" column="Przhechou" />
            <result property="Primg" column="Primg" />
            <result property="Prcontent" column="Prcontent" />
            <result property="Prpx" column="Prpx" />
            <result property="Prdate" column="Prdate" />
            <result property="Prjianshu" column="Prjianshu" />
            <result property="Prstate" column="Prstate" />
            <result property="Prtop" column="Prtop" />
            <result property="Phit" column="Phit" />
          </resultMap>
      </resultMaps>  <statements>
       <select id="Product_Select" resultMap="Product_AllColumns" parameterClass="int">
            SELECT 
             [id],
             [Prname],
             [Prhuohao],
             [Prcolor],
             [Prhaoma],
             [Prjiage],
             [Phjiage],
             [Przhechou],
             [Primg],
             [Prcontent],
             [Prpx],
             [Prdate],
             [Prjianshu],
             [Prstate],
             [Prtop],
             [Phit]
              FROM Product   </select>   <select id="Product_SelectGet" resultMap="Product_AllColumns"  parameterClass="int" extends="Product_Select">  where id=$Id$
      </select>
      <select id="Product_SelectFenLei" resultMap="Product_AllColumns" parameterClass="int">
      SELECT
      [id],
      [Prname],
      [Prhuohao],   [Prhaoma],
      [Prjiage],   [Primg]   FROM Product WHERE [Prtop] =1
      <dynamic prepend="WHERE">
      <isNotNull prepend="AND" property="id">id=$value$</isNotNull>
      </dynamic>   </select>
      
      <select id="Product_SelectNew" resultMap="Product_AllColumns" parameterClass="int">
      SELECT
      [id],
      [Prname],
      [Prhuohao],   [Prhaoma],
      [Prjiage],   [Primg]   FROM Product ORDER BY [Prdate] DESC
      <dynamic prepend="WHERE">
      <isNotNull prepend="AND" property="id">id=$value$</isNotNull>
      </dynamic>   </select>   <select id="Product_SelectHop" resultMap="Product_AllColumns" parameterClass="int">
      SELECT
      [id],
      [Prname],
      [Prhuohao],
     
      [Prhaoma],
      [Prjiage],
      
      [Primg]
      
      FROM Product ORDER BY [Phit] DESC
      <dynamic prepend="WHERE">
      <isNotNull prepend="AND" property="id">id=$value$</isNotNull>
      </dynamic>   </select>
       
       <select id="Product_SelectByHash" parameterClass="Hashtable">
             SELECT 
             [id],
             [Prname],
             [Prhuohao],
             [Prcolor],
             [Prhaoma],
             [Prjiage],
             [Phjiage],
             [Przhechou],
             [Primg],
             [Prcontent],
             [Prpx],
             [Prdate],
             [Prjianshu],
             [Prstate],
             [Prtop],
             [Phit]
              FROM Product
         <dynamic prepend="WHERE">
           <isNotNull prepend="AND" property="id">[id]='$id$'</isNotNull>
           <isNotNull prepend="AND" property="Prname">[Prname]='$Prname$'</isNotNull>
           <isNotNull prepend="AND" property="Prhuohao">[Prhuohao]='$Prhuohao$'</isNotNull>
           <isNotNull prepend="AND" property="Prcolor">[Prcolor]='$Prcolor$'</isNotNull>
           <isNotNull prepend="AND" property="Prhaoma">[Prhaoma]='$Prhaoma$'</isNotNull>
           <isNotNull prepend="AND" property="Prjiage">[Prjiage]='$Prjiage$'</isNotNull>
           <isNotNull prepend="AND" property="Phjiage">[Phjiage]='$Phjiage$'</isNotNull>
           <isNotNull prepend="AND" property="Przhechou">[Przhechou]='$Przhechou$'</isNotNull>
           <isNotNull prepend="AND" property="Primg">[Primg]='$Primg$'</isNotNull>
           <isNotNull prepend="AND" property="Prcontent">[Prcontent]='$Prcontent$'</isNotNull>
           <isNotNull prepend="AND" property="Prpx">[Prpx]='$Prpx$'</isNotNull>
           <isNotNull prepend="AND" property="Prdate">[Prdate]='$Prdate$'</isNotNull>
           <isNotNull prepend="AND" property="Prjianshu">[Prjianshu]='$Prjianshu$'</isNotNull>
           <isNotNull prepend="AND" property="Prstate">[Prstate]='$Prstate$'</isNotNull>
           <isNotNull prepend="AND" property="Prtop">[Prtop]='$Prtop$'</isNotNull>
           <isNotNull prepend="AND" property="Phit">[Phit]='$Phit$'</isNotNull>
         </dynamic>   </select>   <select id="Product_SelectPage" parameterClass="Hashtable">
      SELECT
      [id],
      [Prname],
      [Prhuohao],
      [Prcolor],
      [Prhaoma],
      [Prjiage],
      [Phjiage],
      [Przhechou],
      [Primg],

      [Prtop],
      [Phit]
      FROM Product
      <dynamic prepend="WHERE">
      <isNotNull prepend="AND" property="id">[id]='$id$'</isNotNull>
      <isNotNull prepend="AND" property="Prname">[Prname]='$Prname$'</isNotNull>
      <isNotNull prepend="AND" property="Prhuohao">[Prhuohao]='$Prhuohao$'</isNotNull>
      <isNotNull prepend="AND" property="Prcolor">[Prcolor]='$Prcolor$'</isNotNull>
      <isNotNull prepend="AND" property="Prhaoma">[Prhaoma]='$Prhaoma$'</isNotNull>
      <isNotNull prepend="AND" property="Prjiage">[Prjiage]='$Prjiage$'</isNotNull>
      <isNotNull prepend="AND" property="Phjiage">[Phjiage]='$Phjiage$'</isNotNull>
      <isNotNull prepend="AND" property="Przhechou">[Przhechou]='$Przhechou$'</isNotNull>
     
      
      
      <isNotNull prepend="AND" property="Prdate">[Prdate]='$Prdate$'</isNotNull>
      <isNotNull prepend="AND" property="Prjianshu">[Prjianshu]='$Prjianshu$'</isNotNull>
      <isNotNull prepend="AND" property="Prstate">[Prstate]='$Prstate$'</isNotNull>
      <isNotNull prepend="AND" property="Prtop">[Prtop]='$Prtop$'</isNotNull>
      <isNotNull prepend="AND" property="Phit">[Phit]='$Phit$'</isNotNull>
      </dynamic>   </select>
     
       <delete id="Product_Delete" parameterClass="int">
            DELETE FROM 
             Product
               WHERE
             id = $value$
      
       </delete>
       <update id="Product_Update" parameterClass="Product" resultClass="int">
              UPDATE Product
               SET
                 [Prname]=#Prname#,
                 [Prhuohao]=#Prhuohao#,
                 [Prcolor]=#Prcolor#,
                 [Prhaoma]=#Prhaoma#,
                 [Prjiage]=#Prjiage#,
                 [Phjiage]=#Phjiage#,
                 [Przhechou]=#Przhechou#,
                 [Primg]=#Primg#,
                 [Prcontent]=#Prcontent#,
                 [Prpx]=#Prpx#,
                 [Prdate]=#Prdate#,
                 [Prjianshu]=#Prjianshu#,
                 [Prstate]=#Prstate#,
                 [Prtop]=#Prtop#,
                 [Phit]=#Phit#
                WHERE 
                  id = $Id$   </update>
      
       <insert id="Product_Insert" parameterClass="Product">
            INSERT INTO Product
             (
             [Prname],
             [Prhuohao],
             [Prcolor],
             [Prhaoma],
             [Prjiage],
             [Phjiage],
             [Przhechou],
             [Primg],
             [Prcontent],
             [Prpx],
             [Prdate],
             [Prjianshu],
             [Prstate],
             [Prtop],
             [Phit]
             )
           VALUES
             (
             #Prname#,
             #Prhuohao#,
             #Prcolor#,
             #Prhaoma#,
             #Prjiage#,
             #Phjiage#,
             #Przhechou#,
             #Primg#,
             #Prcontent#,
             #Prpx#,
             #Prdate#,
             #Prjianshu#,
             #Prstate#,
             #Prtop#,
             #Phit#
             )   </insert>
      
      </statements>
    </sqlMap>
     
      

  2.   

    指定转换无效肯定是你数据库中的有些数据跟你返回的结Model中的结果不一致
      

  3.   

    谢谢朋友的提示。。是不是IBatisNet支持的sql类型少引起的。。
    money类型好像不支持。。
      

  4.   

      你存进去的是float型么?
      

  5.   

    谢谢朋友的提示。。是不是IBatisNet支持的sql类型少引起的。。
    money类型好像不支持。。
      

  6.   

    如果是那么数据库中默认的是double型的,得到的也是double 不知道是不是这个问题
      

  7.   

    存进去的是money类型。。
    我调用其他的。。sqlmapper没有问题。。
      

  8.   

    用MyGenation生成的代码。。和codesmith  都是float 对应string,money对应string,float对应double ,原来在是被转换掉了。。但是。。两个知名代码生成器。都转换一样的结果。。然后我重新写了。。一个model类。。问题终于解决。。谢谢。。楼上的朋友。马上给分。。
      

  9.   

    QQ多少加个好友探讨下Ihibernate  我们都是用存储过程的