WCF  

Insert and Update Data From SharePoint List Using OData Service

Introduction

 

Today, in this article let's play around with one of the interesting and most useful concepts in OData.

Question: What is insert data from SharePoint list using OData Service?
 

In simple terms "It provides the ability to insert data with the help of data services from SharePoint list". 

Step 1: Create a new custom list on the SharePoint site
 

  Output1.jpg

Step 2: Browse the OData Service .svc on SharePoint

Output2.png

Step 3: Create a new web application

Output3.jpg
 

Step 4: Add a service reference to the newly created web application

 

Output4.png
 

Step 5: The complete code of WebForm1.aspx looks like this:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="InsertODataSPApp.WebForm1" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!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 into SharePoint List using OData Service"

                            Font-Bold="true"></asp:Label>

                    </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" align="center">

                        <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" Font-Bold="true"></asp:Label>

                    </td>

                </tr>

            </table>

        </center>

    </div>

    </form>

</body>

</html>


Step 6: 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 InsertODataSPApp.ServiceReference1;

namespace InsertODataSPApp

{

    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

            {

                MainSiteDataContext objContext = new MainSiteDataContext(new Uri("http://win-kv3bo1rqqf7:24144/_vti_bin/ListData.svc"));

                objContext.Credentials = System.Net.CredentialCache.DefaultCredentials;

                objContext.AddToStudent(new StudentItem

                {

                    FirstName = TextBox1.Text, LastName = TextBox2.Text, Age = int.Parse(TextBox3.Text)

                }

                );

                objContext.SaveChanges();

                Label5.Text = "Record Inserted Successfully";

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox1.Text = string.Empty;

                TextBox2.Text = string.Empty;

                TextBox3.Text = string.Empty;

            }

        }

    }

}

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

 

Output5.png

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

  Output6.png

Update Data from SharePoint List using OData Service

Introduction

Today, in this article let's play around with one of the interesting and most useful concepts in OData.

Question: What is update data from SharePoint list using OData Service?

In simple terms "It provides the ability to update data with the help of data services from SharePoint list".

Step 1: Create a new custom list on SharePoint site, as in:
 

Output1.jpg

Step 2: Browse to the OData Service .svc on SharePoint, as in:

Output2.png

Step 3: Create a new web application

Output3.jpg
 

Step 4: Add up the service reference of the OData Service:
 

  Output4.png
 

Step 5: The complete code of WebForm1.aspx looks like this:

 

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

    <center>

        <div>

            <table>

                <tr>

                    <td colspan="2">

                        <asp:Label ID="Label1" runat="server" Text="Update Data in SharePoint List with OData Service"

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

                    </td>

                </tr>

                <tr>

                    <td>

                        <asp:Label ID="Label6" runat="server" Text="Please Enter Student Id" Font-Size="Large"

                            Font-Names="Verdana" 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" Font-Size="Large"

                            Font-Names="Verdana" 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" Font-Size="Large"

                            Font-Names="Verdana" 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" Font-Size="Large" Font-Names="Verdana"

                            Font-Italic="true"></asp:Label>

                    </td>

                    <td>

                        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>

                    </td>

                </tr>

                <tr>

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

                        <asp:Button ID="Button2" runat="server" Text="Update List Data" Font-Names="Verdana"

                            Width="166px" BackColor="Orange" Font-Bold="True" OnClick="Button2_Click" />

                    </td>

                </tr>

                <tr>

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

                        <asp:Label ID="Label5" runat="server" Font-Bold="true" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

            </table>

        </div>

    </center>

    </form>

</body>

</html>

 

Step 6: 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 UpdateODataSPApp.ServiceReference1;

namespace UpdateODataSPApp

{

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

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button2_Click(object sender, EventArgs e)

        {

            if (string.IsNullOrEmpty(TextBox1.Text) || string.IsNullOrEmpty(TextBox2.Text) || string.IsNullOrEmpty(TextBox3.Text) || string.IsNullOrEmpty(TextBox4.Text))

            {

                Label5.Text = "Please Enter Some Values";

                Label5.ForeColor = System.Drawing.Color.Red;

            }

            else

            {

                MainSiteDataContext objContext = new MainSiteDataContext(new Uri("http://win-kv3bo1rqqf7:24144/_vti_bin/ListData.svc"));

                objContext.Credentials = System.Net.CredentialCache.DefaultCredentials;

                var updateQuery = (from r in objContext.Student where r.Id == int.Parse(TextBox4.Text) select r).Single();

                updateQuery.FirstName = TextBox1.Text;

                updateQuery.LastName = TextBox2.Text;

                updateQuery.Age = int.Parse(TextBox3.Text);

                objContext.UpdateObject(updateQuery);

                objContext.SaveChanges();

                Label5.Text = "Data Updated Successfully";

                Label5.ForeColor = System.Drawing.Color.Green;

                TextBox1.Text = string.Empty;

                TextBox2.Text = string.Empty;

                TextBox3.Text = string.Empty;

                TextBox4.Text = string.Empty;

            }

        }

    }

}

 

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

Output7.png
 

 Step 8: The updated data output of the application looks like this:
 

  Output8.png

I hope this article is useful for you.

MVC Corporation is consulting and IT services based company.