「system.dbnull」タイプの「system.dbnull」の「system.string」の「dbnull」の「キャストできない」「データベースクエリのエラー
データベースインタラクションは、「system.dbnull」タイプの「system.dbnull」の「system.string」「例外」に「system.dbnull」の「キャストできない」をスローすることがあります。これは、A
この改善されたバージョンは、直接キャストを回避します。 条件付き演算子(
public string GetCustomerNumber(Guid id) { object accountNumber = DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidCRM, CommandType.StoredProcedure, "spx_GetCustomerNumber", new SqlParameter("@id", id)); return accountNumber is DBNull ? string.Empty : accountNumber.ToString(); }
is ?:
であるかどうかを確認します。もしそうなら、空の文字列が返されます。それ以外の場合は、accountNumber
オブジェクトを文字列に安全に変換します
DBNull
より汎用性の高いソリューションについては、この一般的な関数を考慮してください:ToString()
この汎用関数は、さまざまなデータ型を処理します。 タイプパラメーターを使用してターゲットタイプを指定し、安全でタイプが正しい変換を可能にします。
public static T ConvertFromDBVal<T>(object obj) { if (obj == null || obj == DBNull.Value) { return default(T); // Returns the default value for the specified type } return (T)obj; }
以上がC# データベース クエリでの「タイプ 'System.DBNull' のオブジェクトをタイプ 'System.String' にキャストできません」エラーを回避する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。