2010-12-03 5 views
0

을 실행하는 동안 내가 예외 얻기 ASP.NET MVC2예외 LINQ 쿼리

이 개발 오전 :

Object reference not set to an instance of an object 

System.NullReferenceException was unhandled by user code 
    Message="Object reference not set to an instance of an object." 
    Source="Anonymously Hosted DynamicMethods Assembly" 
    StackTrace: 
     at lambda_method(ExecutionScope , TrusteeMaster) 
     at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() 
     at System.Linq.Buffer`1..ctor(IEnumerable`1 source) 
     at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) 
     at LexEyeSystem.Controllers.TrusteeMasterController.JsonContractCollection(Int32 page, Int32 rows, String sidx, String sord) in D:\ParallelMinds\Projects\LexEye\Controllers\TrusteeMasterController.cs:line 560 
     at lambda_method(ExecutionScope , 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.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    InnerException: 

가 나는 행동을 반환이 JSON을 작성해야 그 목적을 위해,있는 jqGrid을 보여주기 위해 노력하고 있습니다를, 내 Linq 쿼리가 포함되어 있습니다. 다른 페이지에서 올바르게 실행되는 동일한 검색어 :

var jsonData = new 
{ 
    total = totalPages, 
    page = page, 
    records = totalRecords, 
    rows = ( 
      from s in sortedList 
      select new 
      { 
       cell = new string[] {       
       "TrustContract/Edit/"+ s.TrusteeId.ToString(),       
       s.FullName, 
       s.OtherName.ToString(), 
       s.FatherName, 
       s.TrusteeGender, 
       s.ResidentialAddress, 
       s.CommunicationAddress, 
       s.Occupation, 
       s.Nationality, 
       s.DateOfBirth.Value.ToShortDateString(), 
       s.PlaceOfBirth, 
       s.TelephoneNumber, 
       s.FacsimileNumber, 
       s.MobileNumbers, 
       s.EmailId, 
       s.ElectionIdCardNumber, 
       s.PANCardNumber, 
       s.TaxRegistrationNumber, 
       s.Qualification, 
       s.ExperienceInYears.ToString(), 
       s.Resume.ToString(), 
       "DisclousureInterestDetails/Index/"+ s.TrusteeId.ToString(),//+"?trusteeId="+s.TrusteeId.ToString(), 
       "ForeignDetail/Create/"+ s.TrusteeId.ToString(), 
       "InterestedOtherCompanyInformation/Index/"+ s.TrusteeId.ToString(), 
       "RelativesDetails/Index/"+ s.TrusteeId.ToString() 

      } 
      }).ToArray() 
}; 

하지만 왜 여기에서 실행해서는 안됩니까? 당신 from s in sorteList이 NULL인지에 sortedList을

var sortedList = objTrusteeMasterList 
        .AsQueryable() 
        .OrderBy(orderBy) // Uses System.Linq.Dynamic library for sorting 
        .Skip(pageIndex * pageSize) 
        .Take(pageSize); 
+0

이 문제는 아마도'sortedlist '에있을 것입니다 - 당신이 사용하고있는 LINQ 쿼리는 무엇입니까? –

+0

내가 Linq 쿼리를 준 편집 된 질문을 참조하십시오. 그러나 적절한 결과를 제공합니다. 어떤 예외도 발생하지 않습니다. i 당 디버깅되었습니다. 내가 진술 한 코드 (Linq)를 성명서로 데뷔 할 수있는 방법이 있습니까? –

+0

코드를 정리하는 데 약간의 시간을 할애 할 수 있습니다. 각 줄의 끝에 '
'이 있고, 첫 줄에는 4 자의 들여 쓰기가 없으므로 코드가 오히려 일반 텍스트가됩니다. 읽을 수 없게 만들고, 따라서 우리가 대답하기가 어렵습니다. –

답변

1

확인하는 경우 :

편집 : LINQ 쿼리는 sortedList를 얻을 수 있습니다.

sortedList에 LINQ가 MoveNext 메서드를 호출 할 때 예외가 발생한다고 생각합니다.

+0

안녕하세요, Unmesh, 답장을 보내 주셔서 감사합니다. 끝났다. 실제로 정렬 된 목록이나 그 객체를 포함하는 객체의 문제는 아닙니다. 나는 db에 몇 가지 null 값을 가졌다. 그래서 "s.FullName.ToString()"과 같은 select 문에서 값을 얻는 동안 여기 Convert.ToString (s.FullName)이어야합니다. 그것은 완벽하게 작동합니다. 하지만 너는 +1을 보존한다. –

0

나는 동일한 문제가있었습니다.

from s in sortedList 
      select new ... 

뒤에 ToArray() 메서드를 호출하면 예외가 발생합니다. 문제는 ToString()에 대한 호출이었습니다. 요소가 null의 경우는 실패합니다.