DBNull을 Int로 암시적으로 변환할 수 없나요?
코드 조각 오류: "DBNull에서 int로 암시적으로 변환할 수 없습니다." 이는 ?: 연산자의 특성 때문입니다. 왜냐하면 이 연산자가 평가하는 표현식이 동일한 유형이어야 하기 때문입니다.
이 예에서 첫 번째 표현식(AgeItem.AgeIndex)은 정수이고 두 번째 표현식(DBNull.Value)은 DBNull 유형입니다. 이러한 유형은 호환되지 않아 오류가 발생합니다.
해결책: 객체로 캐스팅하거나 null 병합 연산자를 사용합니다.
이 문제를 해결하려면 두 가지 옵션이 있습니다.
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter; </code>
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter; </code>
이러한 솔루션을 사용하면 유형 변환 오류 없이 SqlParameter에 정수 또는 DBNull.Value를 할당할 수 있습니다.
위 내용은 C#에서 'DBNull을 Int로 암시적으로 변환할 수 없습니다' 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!