ホームページ > バックエンド開発 > C++ > C# で「DBNull を Int に暗黙的に変換できません」エラーを処理する方法は?

C# で「DBNull を Int に暗黙的に変換できません」エラーを処理する方法は?

Patricia Arquette
リリース: 2025-01-10 22:57:48
オリジナル
122 人が閲覧しました

How to Handle

DBNull を暗黙的に Int に変換することはできませんか?

コード スニペットのエラー: 「DBNull から int に暗黙的に変換できません」。これは、?: 演算子の性質によるもので、評価する式が同じ型である必要があります。

この例では、最初の式 (AgeItem.AgeIndex) は整数ですが、2 番目の式 (DBNull.Value) は DBNull 型です。これらの型には互換性がないため、エラーが発生します。

解決策: オブジェクトにキャストするか、null 合体演算子を使用します

この問題を解決するには、2 つのオプションがあります:

  • オブジェクトにキャストします: AgeItem.AgeIndex をオブジェクト型にキャストします。これは整数と 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>
ログイン後にコピー
  • null 合体演算子 (??) を使用します: ??null 合体演算子は、最初の式が null でない場合は最初の式の値を返し、2 番目の式の値を返します。 。これは、AgeItem.AgeIndex が null の場合に DBNull.Value を割り当てるために使用できます:
<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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート