データベースのnull値のアドレス指定:「system.dbnull」を入力する「タイプ 'systemのオブジェクトをキャストできない」 "
データベースの相互作用は、「タイプのオブジェクトをキャストできない」というイライラする「system.dbnull」を入力するために「system.string」「エラー」につながることがよくあります。これは、データベースのnull値を特定のデータ型に変換しようとすることから生じます。 以下は、堅牢なソリューションを示しています
最初に、基本的なアプローチを考えてみましょう:
<code class="language-csharp">public string GetCustomerNumber(Guid id) { object accountNumber = DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id)); if (accountNumber == DBNull.Value) { return string.Empty; } else { return accountNumber.ToString(); } }</code>
この汎用関数は、元のコードを次のように簡素化します
<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>
このエレガントなソリューションは、タイプの安全性を提供し、任意のデータタイプに適切なデフォルト値を返し、コードの読みやすさと保守性を向上させます。 これは、データベースクエリから取得されたnull値を処理するための優れた方法です。
以上がデータベースからデータを取得するときにdbnull.valueエラーを効果的に処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。