Click here to Skip to main content
15,888,113 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Following is my LINQ Query. Which retrive some records from database. I have give date comparision with textboxes. When I put date in these textboxes the records will retrive but when i keep date textboxes empty its not retriving records and rise exception"String was not recognised as valid datetime"

When I keep textboxes od date blank i want to retrive all records. And When I put date i want to retrive that date range records.

So please let me know how to write query for this.

C#
var AllRequest = (from objm in db.tbl_MemberMasters
                             join objreq in db.tbl_ProductRequests
                             on objm.MemberId equals objreq.memberId
                             where objm.IsDistrictFranchise == true && (objreq.date >= Convert.ToDateTime(txtfromDate.Text)  && objreq.date <= Convert.ToDateTime(txtToDate.Text)
                             select new { objreq.requestId, FranchiseeID = objm.MemberId, OwnerName = objm.MemberFirstName + " " + objm.MemberLastName, objm.MobileNumber, objm.City, Date = string.Format("{0:d}", objreq.date), objreq.status }).AsQueryable();


What I have tried:

var AllRequest = (from objm in db.tbl_MemberMasters
join objreq in db.tbl_ProductRequests
on objm.MemberId equals objreq.memberId
where objm.IsDistrictFranchise == true && (objreq.date >= Convert.ToDateTime(txtfromDate.Text) && objreq.date <= Convert.ToDateTime(txtToDate.Text)
select new { objreq.requestId, FranchiseeID = objm.MemberId, OwnerName = objm.MemberFirstName + " " + objm.MemberLastName, objm.MobileNumber, objm.City, Date = string.Format("{0:d}", objreq.date), objreq.status }).AsQueryable();
Posted
Updated 24-Mar-16 2:54am

1 solution

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:
C#
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
});
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900