SqlParameter에 DBNull 값을 할당할 수 없습니다
SqlParameter에 null 값을 할당하려고 하면 다음 코드에서 오류를 보고합니다.
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (AgeItem.AgeIndex == null) ? DBNull.Value : AgeItem.AgeIndex; parameters[0] = planIndexParameter;</code>
문제는 ?: 연산자가 반환 유형을 결정할 수 없다는 것입니다. 왜냐하면 int 유형 값일 수도 있고 DBNull 유형 값일 수도 있고 둘이 호환되지 않기 때문입니다.
해결책:
이 문제를 해결하려면 다음 방법을 선택할 수 있습니다.
<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>
?: 연산자에 대한 MSDN 문서에 따르면 first_expression과 second_expression은 동일한 유형이어야 합니다. 그렇지 않으면 한 유형이 암시적으로 다른 유형으로 변환될 수 있습니다.
위 내용은 C#에서 SQL 매개변수에 할당할 때 DBNull 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!