-1

I have one functionality where i am having three modes based on that modes i am displaying my database records in my view for that i am using following code but i am getting following error

Use of unassigned local variable 'result'

this is my controller code

public PartialViewResult _LaundryBookingPart(DateTime? From, DateTime? To, int mode)
{
    List<RoomLaundryvw> result;
    if (mode == (int)ItemTypesEnum.LaundryGuest)
    {
        result = db.Query<RoomLaundryvw>($"Select rm.RoomID,rm.RoomNo,g.GuestID,g.GuestName,ln.LaundryID,it.ItemName,ln.PickDate,ln.ServiceKind,ln.DropQty,ln.DropDate from Laundry ln " +
        "inner join Items it on ln.ItemId = it.ItemId " +
        "inner join Rooms rm on ln.RoomID = rm.RoomID " +
        "left join Reservation_Guest rg on rg.ReservationID = ln.ReservationID " +
        $"left join Guests g on g.GuestID = rg.GuestID").ToList();
    }

    if (mode == (int)ItemTypesEnum.LaundryStaff)
    {
        result = db.Query<RoomLaundryvw>("Select au.RealName as GuestName from Laundry ln INNER JOIN AspNetUsers au ON ln.UserId = au.Id").ToList();
    }

    if (mode == (int)ItemTypesEnum.Linen)
    {
        result = db.Query<RoomLaundryvw>("Select rm.RoomID,rm.RoomNo,g.GuestID,it.ItemName,g.GuestName from Laundry ln " +
                 "inner join Items it on ln.ItemId = it.ItemId " +
                 "inner join Rooms rm on ln.RoomID = rm.RoomID " +
                 "left join Reservation_Guest rg on rg.ReservationID = ln.ReservationID " +
                 "left join Guests g on g.GuestID = rg.GuestID ").ToList();
    }
    return PartialView(result);
}

I am getting red line with above error.

Please help me with this.

Uwe Keim
  • 39,551
  • 56
  • 175
  • 291
kunals
  • 43
  • 9

1 Answers1

0

The problem is that you never specify a default value for result.

IE: It is possible for none of your If statements to execute and initialize the result variable.

Tyler Sells
  • 463
  • 4
  • 16