Introduction: In
this post I have try to explain how we can use the Joins in LINQ.
Description:
In the last article i have explained How to insert data into database using LINQ, How to Bind, Edit, Update and Delete in Gridview Control in LINQ and Send Password Reset Link in Asp.net.
I have created two tables.
I have created two tables.
LINQ_TABLE
LINQ_STATE (ID is primary key)
ID
|
int
|
STATE
|
varchar(50)
|
Add a web form to application. Go to Solution Explorer,
right click on website>Add new item> Web from.
<asp:GridView ID="grduser"
runat="server"
AutoGenerateColumns="False"
AllowPaging="True" onpageindexchanging="grduser_PageIndexChanging"
>
<Columns>
<asp:TemplateField HeaderText="Username">
<ItemTemplate>
<asp:Label ID="lbluser" runat="server" Text='<%# Eval("USERNAME") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="First Name">
<ItemTemplate>
<asp:Label ID="lblfirst" runat="server" Text='<%# Eval("FIRST_NAME") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name">
<ItemTemplate>
<asp:Label ID="lbllast" runat="server" Text='<%# Eval("LAST_NAME") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date Of Birth">
<ItemTemplate>
<asp:Label ID="lblbirth" runat="server" Text='<%# Eval("DATE_BIRTH") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sex">
<ItemTemplate>
<asp:Label ID="lblsex" runat="server" Text='<%# Eval("SEX") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age">
<ItemTemplate>
<asp:Label ID="lblage" runat="server" Text='<%# Eval("AGE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Profile Image">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("IMAGE") %>' Height="100px"
Width="100px"
/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="State">
<ItemTemplate>
<asp:Label ID="lbldepartment" runat="server" Text='<%#Eval("STATE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Now go to .aspx.cs page.
DataClassesDataContext db
= new DataClassesDataContext();
protected void Page_Load(object
sender, EventArgs e)
{
if
(!IsPostBack)
{
Bindgrid();
}
}
private void Bindgrid()
{
//inner join
var
bind = from v in
db.LINQ_TABLEs
join
d in db.LINQ_STATEs on
v.ID equals d.ID
select
new
{
v.USERNAME,
v.FIRST_NAME,
v.LAST_NAME,
v.DATE_BIRTH,
v.SEX,
v.AGE,
v.IMAGE,
d.STATE
};
grduser.DataSource =
bind;
grduser.DataBind();
}
protected void grduser_PageIndexChanging(object sender, GridViewPageEventArgs
e)
{
grduser.PageIndex = e.NewPageIndex;
Bindgrid();
}
In VB
Private db As New DataClassesDataContext()
Protected Sub Page_Load(ByVal
sender As Object,
ByVal e As
System.EventArgs) Handles
Me.Load
If Not IsPostBack Then
Bindgrid()
End If
End Sub
Private Sub Bindgrid()
'inner join
Dim
bind = From v In
db.LINQ_TABLEs Join d In
db.LINQ_STATEs
On
v.ID Equals d.ID
Select
v.USERNAME, v.FIRST_NAME, v.LAST_NAME, v.DATE_BIRTH,
v.SEX, v.AGE, v.IMAGE,
d.STATE
grduser.DataSource = bind
grduser.DataBind()
End Sub
Protected Sub grduser_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
grduser.PageIndex = e.NewPageIndex
Bindgrid()
End Sub
Now run the project and check the result.
No comments:
Post a Comment