, 그래서 '
(직접 또는 간접적으로) ADO.NET에서 데이터를 쿼리 할 때 어떤 종류의 "독자"API (대부분 IDataReader
일 가능성이 높습니다.) 또는 당신은 raw object
값을 얻을 것입니다.
첫 번째 경우에는 IsDBNull
방법 (열당)에 액세스해야합니다. 그래서 그 메소드를 호출하고, 당신이 null을 가지고 무엇을 하든지 할 수 있습니다.
두 번째 경우 DBNull
의 값 (예 : if(val is DBNull
)을 확인해야합니다.
두 경우 모두 다음 코드는 라이브러리에 달려 있습니다. 두 경우 모두 두 개의 null-esque 시나리오를 고려해야합니다. 행이없고 값이 하나 인 행입니다.
솔직히, 두 경우 모두 기존의 라이브러리/도구를 사용하는 것이 더 쉬울 것입니다. 예를 들어, 날씬한와 함께, 이것은 단지가 될 것입니다 : 당신에게 제공
string customerId = "01";
decimal? pembayaran = Db.Query<decimal?>(
"Select valuta from ArInvoice where [email protected]",
new { customerId }).Single();
:
- 올바른 파라미터 설정을
- 모든 데이터를 조회하는
- 같은 API를 처리 널 (
Query<T>
)
- 당신이 원하는 LINQ (
Single()
, First()
, ToList()
등)를 사용할 수있는 능력 당신이 대신 (디폴트 값을 사용하고자하는 경우
빈 decimal?
셀의 값이 null
때, 당신은 사용할 수 있습니다 여기
decimal pembayaran = Db.Query<decimal?>(
"Select valuta from ArInvoice where [email protected]",
new { customerId }).Single() ?? 0M;
가 ?? 0M
는 단지 널 병합 작업입니다주의 null
대신에 decimal
을 0으로하십시오.
'SingleDecimal' 메서드가있는 도구/라이브러리는 무엇입니까? 그게 당신 자신 이니? 또는...? '변화가 거기에서 만들어 질 필요가 있기 때문에. –