DBNull を暗黙的に Int に変換することはできませんか?
コード スニペットのエラー: 「DBNull から int に暗黙的に変換できません」。これは、?: 演算子の性質によるもので、評価する式が同じ型である必要があります。
この例では、最初の式 (AgeItem.AgeIndex) は整数ですが、2 番目の式 (DBNull.Value) は DBNull 型です。これらの型には互換性がないため、エラーが発生します。
解決策: オブジェクトにキャストするか、null 合体演算子を使用します
この問題を解決するには、2 つのオプションがあります:
<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>
これらのソリューションを使用すると、型変換エラーが発生することなく、整数または DBNull.Value を SqlParameter に割り当てることができます。
以上がC# で「DBNull を Int に暗黙的に変換できません」エラーを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。