1. ホーム
  2. c#

[解決済み】Nullableオブジェクトは値を持たなければならない?

2022-01-26 22:14:31

質問

ライン上 bool travel = fill.travel.Value; 以下のようなエラーが発生します。

Nullableオブジェクトは値を持つ必要があります

というのも、なぜなのかよくわからないのです。私がしたいのは、データベースで現在falseになっているtravelの値を取得することだけです。何かお手伝いいただけると幸いです。

using (var db = new DataClasses1DataContext())
{
    var fill = (from f in db.expenseHdrs
                where f.rptNo == getPkRowReport()
                select f).FirstOrDefault();

    txtReportDesc.Text = fill.description;
    txtPeriod.Text = fill.period;
    txtPurpose.Text = fill.purpose;

    bool travel = fill.travel.Value;
    chkTravel.Checked = travel 
 }

解決方法は?

にいつでも切り替えることができます。

 fill.travel.GetValueOrDefault()

デフォルト(false)、つまりデータベースからbooleanカラムの値を提供すること。または、オーバーロードでデフォルトを指定することもできます。いずれにせよ、nullableは現在値を持っていないので、その例外が発生します。