「タイプ」system.dbnull "オブジェクトをタイプに変換できない" system.string ""エラー
に巧妙に解決します。 dbnull値を文字列に変換しようとすると、「system.dbnull」のオブジェクトを「system.dbnull」のオブジェクトに変換することを強制できないエラーが発生することがよくあります。 1つの処理方法は、値がdbnullの場合、空の文字列が返される場合、条件付きステートメントを使用することです。ただし、この方法は退屈で間違いを犯しやすいです。
よりエレガントなソリューションは、一般的な関数を使用して、以下に示すように、データベース値から必要なタイプへの変換を処理することです。
この関数は入力としてオブジェクトを受信し、必要なタイプで変換が返された後に値を返します(この例で)。使用方法は次のとおりです。
<code class="language-csharp">public static T ConvertFromDBVal<T>(object obj) { if (obj == null || obj == DBNull.Value) { return default(T); // 返回该类型的默认值 } else { return (T)obj; } }</code>
この汎用関数を使用することにより、コードを簡素化し、条件付き検査の需要を排除して、タイプのセキュリティを確保し、エラーの可能性を減らすことができます。
以上がC# で「タイプ 'System.DBNull' のオブジェクトをタイプ 'System.String' にキャストできません」エラーを効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。