どうしたのですか?nHibernate結果トランスフォーマエラー
クエリをSSMSのスクリプトに切り貼りして(適切にクエリとしてフォーマットする)、コードはSQLでエラーなく実行されます。 それで問題は返事にあります。
'yourordernumber'は、hbm.xlmマッピングの文字列として定義され、SQL Serverからvarcharとして返されます。
もう2つ質問があります。エラー例外メッセージに、クエリスクリプトへの単純な切り取りと貼り付けのテキストが含まれていないのはなぜですか?そして、なぜエラーテキストが実際にそれに問題があったか教えてもらえませんか?
NHibernate.Exceptions.GenericADOException was unhandled by user code
HResult=-2146232832
Message=could not execute query
[ exec OrderLinUpdate
@[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected] ]
Name:Mode - Value:Add Name:OrderHdrRecid - Value:51 Name:LinNo - Value:-1 Name:ItemRecid - Value:97 Name:QtyRequested - Value:1 Name:LoadIDsList - Value:OS 001.0001.1??20300 Name:ItemSelectMethod - Value:SearchLoadID Name:ModifiedBy - Value:0
[SQL: exec OrderLinUpdate
@[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]]
Source=NHibernate
SqlString=exec OrderLinUpdate
@[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
, @[email protected]
StackTrace:
at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters, IResultTransformer forcedResultTransformer)
at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session, QueryParameters queryParameters)
at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results)
at NHibernate.Impl.AbstractSessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results)
at NHibernate.Impl.AbstractSessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
at NHibernate.Impl.SqlQueryImpl.List()
at NHibernate.Impl.AbstractQueryImpl.UniqueResult()
at TKOSMERP.Controllers.ERP.ERPController.OrderLinUpdate(FormCollection pd) in C:\_TKOSVNRepos\TKOSM_ERP\TKOSM_ERP\Controllers\ERP\ERPController_ODELine.cs:line 36
at lambda_method(Closure , ControllerBase , Object[])
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()
InnerException:
HResult=-2146233080
Message=yourordernumber
Source=System.Data
StackTrace:
at System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName)
at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
at NHibernate.Driver.NHybridDataReader.GetOrdinal(String name)
at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name)
at NHibernate.Type.NullableType.NullSafeGet(IDataReader rs, String name, ISessionImplementor session, Object owner)
at NHibernate.Loader.Custom.CustomLoader.ScalarResultColumnProcessor.Extract(Object[] data, IDataReader resultSet, ISessionImplementor session)
at NHibernate.Loader.Custom.CustomLoader.ResultRowProcessor.BuildResultRow(Object[] data, IDataReader resultSet, Boolean hasTransformer, ISessionImplementor session)
at NHibernate.Loader.Custom.CustomLoader.GetResultColumnOrRow(Object[] row, IResultTransformer resultTransformer, IDataReader rs, ISessionImplementor session)
at NHibernate.Loader.Loader.GetRowFromResultSet(IDataReader resultSet, ISessionImplementor session, QueryParameters queryParameters, LockMode[] lockModeArray, EntityKey optionalObjectKey, IList hydratedObjects, EntityKey[] keys, Boolean returnProxies, IResultTransformer forcedResultTransformer)
at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
at NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies, IResultTransformer forcedResultTransformer)
at NHibernate.Loader.Loader.DoList(ISessionImplementor session, QueryParameters queryParameters, IResultTransformer forcedResultTransformer)
InnerException:
- 更新 私はそれを理解しました。クエリが実行されている間に追加のトラブルシューティング'select'
ステートメントがありました。したがって、procは実際には2つのレコードセットを返していました。非常に一般的で識別可能な状況(1つの問題は1つの問題ではない)ですが、実行テキストでこの状況が特定されていますか?