quickbooks 데이터베이스 내에있는 항목의 목록을 가져 오려고합니다. 쿼터백 데이터베이스의 특정 서비스 항목이 설명이되지 않기 때문에QBFC를 사용하여 quickbooks의 null 값 확인
item.Desc = itemServiceRet.ORSalesPurchase.SalesOrPurchase.Desc.GetValue();
"Object reference not set to an instance of an object"
:
IItemServiceRet itemServiceRet = itemRet.ItemServiceRet;
TestItem item = new TestItem();
item.Name = itemServiceRet.Name.GetValue();
item.Desc = itemServiceRet.ORSalesPurchase.SalesOrPurchase.Desc.GetValue();
item.Rate = itemServiceRet.ORSalesPurchase.SalesOrPurchase.ORPrice.Price.GetValue().ToString();
item.ItemType = "Service";
item.QBID = itemServiceRet.ListID.GetValue();
item.EditSeq = itemServiceRet.EditSequence.GetValue();
코드는 라인에 실패 : 나는 다음 코드 조각이있다. 각 라인에 if
문을 포함시킬 필요없이 null 값을 확인하는 '깨끗한'방법이 있다면 호기심이 생겼습니다. GetValue()
이 null을 반환하는지 확인 하시겠습니까?
편집 : 앤드류 쿠퍼의 솔루션 시도 후 :
item.Desc = itemServiceRet.ORSalesPurchase.SalesOrPurchase.Desc == null ? null : itemServiceRet.ORSalesPurchase.SalesOrPurchase.Desc.GetValue();
을 여전히 예외가 발생합니다 :
Object reference not set to an instance of an object
그것의 GetValue()가 전혀 설명이 없으면 아무 것도 반환하지 않는 경우로한다 별로 의미가 없을 것입니다.
item.Desc = itemServiceRet.ORSalesPurchase.SalesOrPurchase.Desc == null ? null : itemServiceRet.ORSalesPurchase.SalesOrPurchase.Desc.GetValue();
을하지만 꽤 추한 :
item.Desc가 값을 찾고 있습니다. 따라서 null 대신 빈 문자열을 넣어야합니다. 또한 Ternary 연산자가 아닌 간단한 If Then을 사용해야 할 수도 있습니다. – user890332