首页 新闻 会员 周边

OracleParameterCollection的Count=4 的索引4 无效 NHiberna

0
悬赏园豆:50 [已关闭问题]

概述:

     当用Nhibernate操作主从表时,往主表插入数据时,当执行到提交事务时出现如下错误:

此 OracleParameterCollection 的 Count=4 的索引 4 无效。

在 System.Data.OracleClient.OracleParameterCollection.RangeCheck(Int32 index) 在 System.Data.OracleClient.OracleParameterCollection.GetParameter(Int32 index) 在 System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item(Int32 index) 在 NHibernate.Type.DecimalType.Set(IDbCommand st, Object value, Int32 index) 在 NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object value, Int32 index) 在 NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object value, Int32 index, ISessionImplementor session) 在 NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 table, IDbCommand statement, ISessionImplementor session, Int32 index) 在 NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session) 在 NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session) 在 NHibernate.Action.EntityInsertAction.Execute() 在 NHibernate.Engine.ActionQueue.Execute(IExecutable executable) 在 NHibernate.Engine.ActionQueue.ExecuteActions(IList list) 在 NHibernate.Engine.ActionQueue.ExecuteActions() 在 NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) 在 NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event) 在 NHibernate.Impl.SessionImpl.Flush() 在 NHibernate.Transaction.AdoTransaction.Commit() 在 DataAccess.DictateDao.AddRecord(String registerOrgid, String registerOperatorid, String dictateTitle, String dictateContent, String dictateType, String[] informOrgid, String[] accessoryName, String[] accessorySize) 位置 D:\OA\DataAccess\DataAccess\DictateDao.cs:行号 64

主表xml如下:


<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  
<class name="Model.JkptOaxtDictate,Model" table="JKPT_OAXT_DICTATE" lazy="false">
    
<id name="Dictateid" column="DICTATEID" type="Decimal">
      
<generator class="sequence">
        
<param name="sequence">JKPT.OARecordSequence</param>
      
</generator>
    
</id>
    
<property type="Decimal" name="Registerorgid" column="REGISTERORGID" />
    
<property type="string" length="6" name="Registeroperatorid" column="REGISTEROPERATORID" />
    
<property type="DateTime" name="Registertime" column="REGISTERTIME" />
    
<property type="string" length="200" name="Dictatetitle" column="DICTATETITLE" />
    
<property type="string" length="4000" name="Dictatedesc" column="DICTATEDESC" />
    
<property type="Decimal" name="Modifyorgid" column="MODIFYORGID" />
    
<property type="string" length="6" name="Modifyoperatorid" column="MODIFYOPERATORID" />
    
<property type="DateTime" name="Modifytime" column="MODIFYTIME" />
    
<property type="Decimal" name="Isbrowse" column="ISBROWSE" />
    
<property type="Decimal" name="Browseorgid" column="BROWSEORGID" />
    
<property type="string" length="6" name="Browseoperatorid" column="BROWSEOPERATORID" />
    
<property type="DateTime" name="Browsetime" column="BROWSETIME" />
    
<property type="Decimal" name="Informtype" column="INFORMTYPE" />
    
<set name="details"  cascade="all"  inverse="true" lazy="false">
      
<key column="DICTATEID" />
      
<one-to-many class="Model.JkptOaxtDictatedetails,Model"  />      
    
</set>
  
</class>
</hibernate-mapping>

相应的CS如下:

Code

 

从表xml如下:

Code

 

相应的CS如下:

Code

 

主程序如下:

 

 

Code

 

当执行到trans.Commit()时出现如上所述错误.

王晓成的主页 王晓成 | 初学一级 | 园豆:142
提问于:2009-04-02 08:54
< >
分享
所有回答(1)
0

楼主怎么解决的呢?

flyingsnowers | 园豆:204 (菜鸟二级) | 2016-09-28 19:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册