You'll also have this problem if your users enter a value which isn't a valid date. You need to use
DateTime.TryParse[
^] to try to parse the entered values as
DateTime
instances, and only apply the filter if the value is valid:
var requests = from objm in db.tbl_MemberMasters
join objreq in db.tbl_ProductRequests
on objm.MemberId equals objreq.memberId
where objm.IsDistrictFranchise == true
select new { objm, objreq };
DateTime fromDate;
if (DateTime.TryParse(txtFromDate.Text, out fromDate))
{
requests = requests.Where(r => r.objreq.date >= fromDate);
}
DateTime toDate;
if (DateTime.TryParse(txtToDate.Text, out toDate))
{
requests = requests.Where(r => r.objreq.date <= toDate);
}
var AllRequests = requests.Select(r => new
{
r.objreq.requestId,
FranchiseID = r.objm.MemberId,
OwnerName = r.objm.MemberFirstName + " " + r.objm.MemberLastName,
r.objm.MobileNumber,
r.objm.City,
Date = r.objreq.date.ToString("d"),
r.objreq.status
});