LINQ left join two lists?

19 views
Skip to first unread message

Paul

unread,
Dec 21, 2009, 6:04:58 PM12/21/09
to DotNetDevelopment, VB.NET, C# .NET, ADO.NET, ASP.NET, XML, XML Web Services,.NET Remoting
Hello Everyone,

I am having a hard time learning LINQ. I hope someone can here can
help me solve the problem or suggest a more appropriate forum for my
question.

The Page_Load event attempts to bind the result of my query to a
gridview (grdTest). I think I am close to getting it, but I keep
getting an exception.

>>>>Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

I have tried binding grdTest to both of the lists that I am trying to
join. It works with both the "members" list and the "dates" list. What
is also interesting is that I get a result (but not the result that I
want) when I change the 3rd line of "query" to:

"on d.Date.Year equals m.colDateOfBirth.Value.Year"

so obviously, the equals test fails otherwise. The "members" list has
3 records, each of these with dates that made the dates in the "dates"
list.

The book I am using to teach myself is not very helpful.

Thanks in advance for any help or advice,

Paul

protected void Page_Load(object sender, EventArgs e)
{

System.Collections.Generic.List<P4.tblClient> members =
P4.tblClient.SelectTest();
System.Collections.Generic.List<DateTime> dates = new
System.Collections.Generic.List<DateTime>();
DateTime start = new DateTime(1963, 6, 1);

while (start.Month.Equals(6))
{
dates.Add(start);
start = start.AddDays(1);
}

var query = from d in dates
join m in members
on d.Date equals m.colDateofBirth into dm
from m in dm.DefaultIfEmpty()
select new { d.Date, m.colDateofBirth,
m.colFirstName, m.colLastName };


grdTest.DataSource = query;
grdTest.DataBind();
}


Reply all
Reply to author
Forward
0 new messages