Select Data With Typed Dataset (XSD) Via WCF

This article demonstrates an interesting and very useful concept in typed datasets.

Introduction

This article demonstrates an interesting and very useful concept in typed datasets.

Question: What is select data with typed dataset (XSD) via WCF?

In simple terms "It enables selection of data from a DB using a typed dataset and a WCF Service".

Step 1:
Create a new web application

Output1.jpg

Step 2: Create a new WCF service application

Output2.jpg

Step 3: Adding a new typed dataset

Output2.jpg

Output3.png

Output4.jpg

Output5.png

Step 4: The complete code of IService1.cs is as in the following:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WCFService

{

    // 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]

        EmployeeDS.tblEmployeeDataTable GetAllEmployees();

    }

}

Step 5: The complete code of Service1.svc.cs is as in the following:
 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WCFService

{

    // 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 EmployeeDS.tblEmployeeDataTable GetAllEmployees()

        {

            EmployeeDS.tblEmployeeDataTable objEmployeeTable = objAdapter.GetData();

            return objEmployeeTable;

        }

        #region Instance Membersreadonly EmployeeDSTableAdapters.tblEmployeeTableAdapter objAdapter = new EmployeeDSTableAdapters.tblEmployeeTableAdapter();

        #endregion

    }

}

Step 6: Adding a service reference

Output6.png

Step 7: The complete code of WebForm1.aspx is as in the following:
 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SelectData_XSD_WCFService.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">

    <style type="text/css">

        .grid

        {

            margin-top: 50px;

        }

    </style>

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <center>

        <div>

            <table>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Label ID="Label1" runat="server" Text="Select Data with XSD via WCF" Font-Bold="true"

                            Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button1" runat="server" Text="Select Data" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:GridView ID="GridView1" runat="server" CssClass="grid" BackColor="LightGoldenrodYellow"

                            BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None"

                            AutoGenerateColumns="False">

                            <AlternatingRowStyle BackColor="PaleGoldenrod" />

                            <FooterStyle BackColor="Tan" />

                            <HeaderStyle BackColor="Tan" Font-Bold="True" />

                            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />

                            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />

                            <SortedAscendingCellStyle BackColor="#FAFAE7" />

                            <SortedAscendingHeaderStyle BackColor="#DAC09E" />

                            <SortedDescendingCellStyle BackColor="#E1DB9C" />

                            <SortedDescendingHeaderStyle BackColor="#C2A47B" />

                            <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>

        </div>

    </center>

    </form>

</body>

</html>

Step 8: The complete code of WebForm1.aspx.cs is as in the following:
 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using SelectData_XSD_WCFService.ServiceReference1;namespace SelectData_XSD_WCFService

{

    public partial class WebForm1 : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            GridView1.DataSource = objClient.GetAllEmployees();

            GridView1.DataBind();

        }

        #region Instance MembersService1Client objClient = new Service1Client();

        #endregion

    }

}

Step 9: The output of the application is as in the following:


Output7.png


Step 10: The selected data output of the application is as in the following:

Output8.png


I hope this article was useful for you.