Reader Level:
ARTICLE

Insert and Update Data Using LINQ With WCF

Posted by Vijay Prativadi Articles | LINQ November 10, 2012
Today, in this article let’s play around with one of the interesting and most useful concept Insert and Update Data using LINQ with WCF.
  • 0
  • 0
  • 5995

Introduction

Question: What is inserting data using LINQ with WCF?

In simple terms "It enables insertion of data using LINQ queries via WCF Service".

Step 1: Create a new webform project

Output1.png

Step 2: The complete code of webform1.aspx looks like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WCFAppusingLINQInsert.WebForm1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<
body>
    <form id="form1" runat="server">
    <div>
        <center>
            <table>
                <tr>
                    <td>
                        <asp:Label ID="Label1" runat="server" Text="Insert Data using LINQ with WCF" Font-Bold="true"></asp:Label>
                    </td>
                </tr>
                <tr
>
                    <td
>
                        <asp:GridView ID="GridView1" runat="server" BackColor="#CCCCCC" AutoGenerateColumns="False"
                            BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2"
                            ForeColor="Black" OnLoad="Page_Load">
                            <FooterStyle BackColor="#CCCCCC" />
                            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
                            <RowStyle BackColor="White" />
                            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                            <SortedAscendingCellStyle BackColor="#F1F1F1" />
                            <SortedAscendingHeaderStyle BackColor="#808080" />
                            <SortedDescendingCellStyle BackColor="#CAC9C9" />
                            <SortedDescendingHeaderStyle BackColor="#383838" />
                            <Columns>
                                <asp:BoundField DataField="EmpId" HeaderText="Id" />
                                <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
                                <asp:BoundField DataField="LastName" HeaderText="LastName" />
                                <asp:BoundField DataField="Age" HeaderText="Age" />
                            </Columns>
                        </asp:GridView>
                    </td>
                </tr>
            </table>
            <br />
            <br />
            <table>
                <tr>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text="Please Enter FirstName: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label3" runat="server" Text="Please Enter LastName: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label4" runat="server" Text="Please Enter Age: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Button ID="Button1" runat="server" Text="Insert Data" OnClick="Button1_Click"
                            BackColor="Orange" Font-Bold="true" /><br />
                        <br />
                    </td>
                </tr
>
            </table>
            <br />
            <br />
            <table>
                <tr>
                    <td colspan="3">
                        <asp:Label ID="Label5" runat="server" ForeColor="Red" Font-Bold="true"></asp:Label>
                    </td>
                </tr> 
           </table
>
        </center>
    </div>
    </form>
</body>
</
html>

Step 3: The complete code of webform1.aspx.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using
System.Web.UI.WebControls;
using WCFAppusingLINQInsert.ServiceReference1;
namespace
WCFAppusingLINQInsert
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text)
                || string.IsNullOrEmpty(TextBox3.Text))
            {
                Label5.Text = "Please Enter Some Values";
                Label5.ForeColor = System.Drawing.Color.Red;
            }
           
else
            {
                objClient.PutEmployee(TextBox1.Text, TextBox2.Text, int.Parse(TextBox3.Text));
                GridView1.DataSource = objClient.GetAllEmployees();
                GridView1.DataBind();
                Label5.Text = "Records Inserted Successfully";
                Label5.ForeColor = System.Drawing.Color.Green;
                TextBox1.Text = string.Empty;
                TextBox2.Text = string.Empty;
                TextBox3.Text = string.Empty;
            }
        }
        #region Instance MembersService1Client objClient = new Service1Client();
        #endregion
    }
}

Step 4: Create a new "WCF Service Application" project.

Output1.1.png

Step 5: The complete code of IService1.cs looks like this:

using System;
using
System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQInsert
{
   
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface
IService1
    {
        [OperationContract]
        List<Employee> GetAllEmployees();
        [OperationContract]
        void PutEmployee(string a, string b, int c);
    }
}


Step 6: The complete code of Service1.svc.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using
System.Text;
namespace WCFLINQInsert
{
   
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
        public List<Employee> GetAllEmployees()
        {
            var query = (from r in objEntities.Employee select r);
            return query.ToList();
        }
        public void PutEmployee(string a, string b, int c)
        {
            objEntities.InsertEmployeeData(a, b, c);
        }
        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();
        #endregion
    }
}

Step 7: The output of the application looks like this:

Output2.png

Step 8: The output of the data inserted output operation result looks like this:

Output3.png

Question: What is updating data using LINQ with WCF?

In simple terms "It enables the update of data using LINQ queries via WCF Service".

Step 1: Create a new webform project

Step 2: The complete code of webform1.aspx looks like this:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WCFUpdateusingLINQ.WebForm1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<
body>
    <form id="form1" runat="server">
    <div>
        <center>
            <table>
                <tr>
                    <td>
                        <asp:Label ID="Label1" runat="server" Text="Update with LINQ using WCF" Font-Bold="true"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:GridView ID="GridView1" runat="server" BackColor="#CCCCCC" AutoGenerateColumns="False"
                            BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2"
                            ForeColor="Black" OnLoad="Page_Load">
                            <FooterStyle BackColor="#CCCCCC" />
                            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
                            <RowStyle BackColor="White" />
                            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                            <SortedAscendingCellStyle BackColor="#F1F1F1" />
                            <SortedAscendingHeaderStyle BackColor="#808080" />
                            <SortedDescendingCellStyle BackColor="#CAC9C9"
/>
                            <SortedDescendingHeaderStyle BackColor="#383838" />
                            <Columns>
                                <asp:BoundField DataField="EmpId" HeaderText="Id" />
                                <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
                                <asp:BoundField DataField="LastName" HeaderText="LastName" />
                                <asp:BoundField DataField="Age" HeaderText="Age" />
                            </Columns>
                        </asp:GridView>
                    </td>
                </tr>
            </table>
            <br />
            <br />
            <table>
                <tr>
                    <td>
                        <asp:Label ID="Label6" runat="server" Text="Please Enter Id: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label2" runat="server" Text="Please Enter FirstName: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label3" runat="server" Text="Please Enter LastName: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="Label4" runat="server" Text="Please Enter Age: " ForeColor="Brown"
                            Font-Bold="true" Font-Italic="true"></asp:Label>
                    </td>
                    <td>
                        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr
>
                    <td colspan="2">
                        <asp:Button ID="Button1" runat="server" Text="Update Data" OnClick="Button1_Click"
                            BackColor="Orange" Font-Bold="true" /><br
/>
                        <br />
                    </td>
                </tr>
            </table>
            <br />
            <br />
            <table>
                <tr>
                    <td colspan="3">
                        <asp:Label ID="Label5" runat="server" ForeColor="Red" Font-Bold="true"></asp:Label
>
                    </td>
                </tr
>
            </table>
        </center>
    </div>
    </form>
</body>
</
html>

Step 3: The complete code of webform1.aspx.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using
System.Web.UI;
using System.Web.UI.WebControls;
using WCFUpdateusingLINQ.ServiceReference1;
namespace
WCFUpdateusingLINQ
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(TextBox4.Text) || string.IsNullOrEmpty(TextBox1.Text) ||
                string.IsNullOrEmpty(TextBox2.Text) || string.IsNullOrEmpty(TextBox3.Text))
            {
                Label5.Text = "Please Enter Some Values";
                Label5.ForeColor = System.Drawing.Color.Red;
            }
            else{objClient.UpdateEmployee(int.Parse(TextBox4.Text), TextBox1.Text, TextBox2.Text,
                int.Parse(TextBox3.Text));GridView1.DataSource = objClient.GetAllEmployees();
                GridView1.DataBind();
                Label5.Text = "Records Updated Successfully";
                Label5.ForeColor = System.Drawing.Color.Green;
                TextBox1.Text = string.Empty;
                TextBox2.Text = string.Empty;
                TextBox3.Text = string.Empty;
                TextBox4.Text = string.Empty;
            }
        }
        #region Instance MembersService1Client objClient = new Service1Client();
        #endregion
    }
}


Step 4: Create a new "WCF Service Application" project.

Step 5: The complete code of IService1.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQUpdate
{
   
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface
IService1
    {
        [OperationContract]
        List<Employee> GetAllEmployees();
        [OperationContract]
        void UpdateEmployee(int a, string b, string c, int d);
    }
}


Step 6: The complete code of Service1.svc.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFLINQUpdate
{
   
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
        public List<Employee> GetAllEmployees()
        {
           
// TODO: Implement this methodvar
            query = from r in objEntities.Employee select r;
            return query.ToList();
        }
        public void UpdateEmployee(int a, string b, string c, int d)
        {
            objEntities.UpdateEmployeeData(a, b, c, d);
        }
        #region Instance MembersCompanyEntities objEntities = new CompanyEntities();
        #endregion
    }
}


Step 7: The output of the application looks like this:

Output2 (1).png
Step 8: The output of the data updated output operation result looks like this:

Output3 (1).png

I hope this article is useful for you. I look forward for your comments and feedback. Thanks Vijay Prativadi

Article Extensions
Contents added by younessesoft on Mar 15, 2013
thanks you verey very matche
Contents added by younessesoft on Mar 15, 2013
thanks you very match
COMMENT USING