public class Articles
{
public int Id { get; set; }
public int UserId { get; set; }
public string NameArticle { get; set; }
}
public class Images
{
public int Id { get; set; }
public int ArticleId { get; set; }
public string UrlImage { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<Articles> one = new List<Articles> {
new Articles{Id = 1, UserId=1, NameArticle="A"}
,new Articles{Id = 2, UserId=1, NameArticle="B"}
,new Articles{Id = 3, UserId=1, NameArticle="C"}
};
List<Images> two = new List<Images> {
new Images{Id = 1, ArticleId=1, UrlImage="A.jpg"}
,new Images{Id = 2, ArticleId=1, UrlImage="B.jpg"}
,new Images{Id = 3, ArticleId=1, UrlImage="C.jpg"}
};
var v = from o in one
join t in two
on o.Id equals t.ArticleId
select new { ArticleName = o.NameArticle, ImageUrl = t.UrlImage };
grid.DataSource = v.ToList();
grid.DataBind();
}
}
Please mark the post as "Answer" that helps you.
Marked as answer by programercek on Feb 09, 2012 06:20 PM
In the table tbl_ImageUrl there must be a record.
What if there is no record?
If there no record is datalist empty
var PodrobnostiArtikla = from artikli in db.tbl_Artiklis
where artikli.ID == Convert.ToInt32(Request.QueryString["artikelid"])
join DodatneSlike in db.tbl_ImagesUrls
on artikli.ID equals DodatneSlike.ArtikelID
select new { UrlImage = artikli.UrlImage, ImeArtikla = artikli.ImeArtikla, SpletnaCena = artikli.SpletnaCena };
List<Articles> one = new List<Articles> {
new Articles{Id = 1, UserId=1, NameArticle="A"}
,new Articles{Id = 2, UserId=1, NameArticle="B"}
,new Articles{Id = 3, UserId=1, NameArticle="C"}
};
List<Images> two = new List<Images> {
new Images{Id = 1, ArticleId=1, UrlImage="A.jpg"}
,new Images{Id = 2, ArticleId=1, UrlImage="B.jpg"}
};
var v = from o in one
join t in two
on o.Id equals t.ArticleId into articlegroup
from item in articlegroup.DefaultIfEmpty()
select new { ArticleName = o.NameArticle, ImageUrl = (item == null ? "N/A" : item.UrlImage) };
grid.DataSource = v.ToList();
grid.DataBind();
Please mark the post as "Answer" that helps you.
Marked as answer by programercek on Feb 15, 2012 07:31 PM
programercek
Participant
1507 Points
2213 Posts
linq join two table
Feb 09, 2012 04:31 PM|LINK
Hello!
I was thinking if is possible to use one linq statement to achieve:
I have two table:
tbl_articles
Id, UserId, NameArticle
tbl_images
Id, ArticleId, urlimage
1, 1, test1.jpg
2, 1,test2.jpg
3, 1,test3.jpg
Now join tables and show in ListData1 name of articles and ListData2 shows images
I think for my example I need two linq statement?
me_ritz
Star
9337 Points
1447 Posts
Re: linq join two table
Feb 09, 2012 04:45 PM|LINK
Here is some sample code:
public class Articles { public int Id { get; set; } public int UserId { get; set; } public string NameArticle { get; set; } } public class Images { public int Id { get; set; } public int ArticleId { get; set; } public string UrlImage { get; set; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { List<Articles> one = new List<Articles> { new Articles{Id = 1, UserId=1, NameArticle="A"} ,new Articles{Id = 2, UserId=1, NameArticle="B"} ,new Articles{Id = 3, UserId=1, NameArticle="C"} }; List<Images> two = new List<Images> { new Images{Id = 1, ArticleId=1, UrlImage="A.jpg"} ,new Images{Id = 2, ArticleId=1, UrlImage="B.jpg"} ,new Images{Id = 3, ArticleId=1, UrlImage="C.jpg"} }; var v = from o in one join t in two on o.Id equals t.ArticleId select new { ArticleName = o.NameArticle, ImageUrl = t.UrlImage }; grid.DataSource = v.ToList(); grid.DataBind(); } }programercek
Participant
1507 Points
2213 Posts
Re: linq join two table
Feb 14, 2012 03:10 PM|LINK
I tried your code but I found a mistake.
In the table tbl_ImageUrl there must be a record.
What if there is no record?
If there no record is datalist empty
var PodrobnostiArtikla = from artikli in db.tbl_Artiklis where artikli.ID == Convert.ToInt32(Request.QueryString["artikelid"]) join DodatneSlike in db.tbl_ImagesUrls on artikli.ID equals DodatneSlike.ArtikelID select new { UrlImage = artikli.UrlImage, ImeArtikla = artikli.ImeArtikla, SpletnaCena = artikli.SpletnaCena };me_ritz
Star
9337 Points
1447 Posts
Re: linq join two table
Feb 15, 2012 03:19 AM|LINK
List<Articles> one = new List<Articles> { new Articles{Id = 1, UserId=1, NameArticle="A"} ,new Articles{Id = 2, UserId=1, NameArticle="B"} ,new Articles{Id = 3, UserId=1, NameArticle="C"} }; List<Images> two = new List<Images> { new Images{Id = 1, ArticleId=1, UrlImage="A.jpg"} ,new Images{Id = 2, ArticleId=1, UrlImage="B.jpg"} }; var v = from o in one join t in two on o.Id equals t.ArticleId into articlegroup from item in articlegroup.DefaultIfEmpty() select new { ArticleName = o.NameArticle, ImageUrl = (item == null ? "N/A" : item.UrlImage) }; grid.DataSource = v.ToList(); grid.DataBind();