SPMetal LINQ - To SharePoint Insert 2010 Programmatically Using VS 2010

Introduction
 
Today, in this article let's play around with one of the interesting and most useful concepts in SharePoint 2010.
 
Question: What is a SPMetal LINQ to SharePoint Insert?
 
In simple terms "It enables creation of a DataContext object using SPMetal, by which we can insert the data to a custom list with the help of a LINQ query".
 
I think we are now good to go and implement this wonderful concept.
 
Step 1 : Open the command prompt as an administrator and enter the following command by requesting a specific site:
 
Spmetal.exe /web:http://win-5d57sl2rvt1:9107/ /code:C:\Student.cs
 
After you have run this, the Student.cs file will be created in the C: Drive of your system directories.
 
Step 2 : Open SharePoint 2010 Central Administration and navigate to a specific site.
 
Step 3 : Open up Visual Studio 2010 and try to create an empty SharePoint project.

Output1.png
 
Step 4 : Select "Deploy as a farm solution" and click the next button. Now an empty project will be created.

Output2.png
 
Step 5 : Add a new visual webpart for that project. Also add the Student.cs file into the project.

Output3.png
 
Step 6 : The complete code of visualwebpart1usercontrol.ascx looks like this:
 
 
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
 
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
 
    Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral,
 PublicKeyToken=71e9bce111e9429c"
%>
 
<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
 PublicKeyToken=31bf3856ad364e35"
%>
 
<%@ Import Namespace="Microsoft.SharePoint" %>
 
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages"
 
    Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
 
<%@  Control Language="C#" AutoEventWireup="true" CodeBehind="SPMetalInsertWPUserControl.ascx.cs"
 
    Inherits="SPMetalInsertApp.SPMetalInsertWP.SPMetalInsertWPUserControl" %>
 
<center>
 
    <div>
 
        <table>
 
            <tr>
 
                <td colspan="2">
 
                    <asp:label id="Label1" runat="server" text="LINQ-TO-SharePoint Insertion - SharePoint 2010 Programatically"
 
                        font-bold="true" font-size="Large" font-names="Verdana" forecolor="Maroon"></asp:label>
 
                </td>
 
            </tr>
 
            <tr>
 
                <td>
 
                    <asp:label id="Label2" runat="server" text="Please Enter First Name" font-size="Large"
 
                        font-names="Verdana" font-italic="true"></asp:label>
 
                </td>
 
                <td>
 
                    <asp:textbox id="TextBox1" runat="server" width="117px"></asp:textbox>
 
                </td>
 
            </tr>
 
            <tr>
 
                <td>
 
                    <asp:label id="Label3" runat="server" text="Please Enter Last Name" font-size="Large"
 
                        font-names="Verdana" font-italic="true"></asp:label>
 
                </td>
 
                <td>
 
                    <asp:textbox id="TextBox2" runat="server" width="117px"></asp:textbox>
 
                </td>
 
            </tr>
 
            <tr>
 
                <td>
 
                    <asp:label id="Label4" runat="server" text="Please Enter Gender" font-size="Large"
 
                        font-names="Verdana" font-italic="true"></asp:label>
 
                </td>
 
                <td>
 
                    <asp:dropdownlist id="DropDownList1" runat="server" style="margin-left: 0px" width="117px"><asp:ListItem Text="Male"
 
Value="1"></asp:ListItem><asp:ListItem Text="Female" Value="2"></asp:ListItem></asp:dropdownlist
>
 
                </td>
 
            </tr>
 
            <tr>
 
                <td>
 
                    <asp:label id="Label6" 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" width="117px"></asp:textbox>
 
                </td>
 
            </tr>
 
            <tr>
 
                <td colspan="2">
 
                    <br />
 
                    <asp:button id="Button1" runat="server" text="Insert Data" font-names="Verdana" width="282px"
 
                        backcolor="Orange" font-bold="True" onclick="Button1_Click" />
 
                </td>
 
            </tr>
 
            <tr>
 
                <td colspan="2">
 
                    <br />
 
                    <asp:label id="Label5" runat="server" font-bold="true" font-names="Verdana"></asp:label>
 
                </td>
 
            </tr>
 
        </table>
 
    </div>
 
</center>
 
Step 7 : The complete code of visualwebpart1usercontrol.ascx.cs looks like this:
 
 
using System;
 
using System.Web.UI;
 
using System.Web.UI.WebControls;
 
using System.Web.UI.WebControls.WebParts;
 
using Microsoft.SharePoint.Linq;
 
using WebApplication2;
  
 
namespace SPMetalInsertApp.SPMetalInsertWP
 {
     public partial class SPMetalInsertWPUserControl : UserControl
     {
         protected void Page_Load(object sender, EventArgs e)
         {
             TextBox1.Focus();
         }
         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
             {
                 StudentDataContext dataContext = new StudentDataContext("http://win-5d57sl2rvt1:9107/");
                 EntityList<PersonListItem> listItems = dataContext.GetList<PersonListItem>("PersonList");
                 PersonListItem item = new PersonListItem()
                 {
                     Title = TextBox1.Text,
                     LastName = TextBox2.Text,
                     Gender = DropDownList1.SelectedItem.Text,
                     Age = int.Parse(TextBox3.Text),
                 };
                 listItems.InsertOnSubmit(item);
                 dataContext.SubmitChanges();
                 Label5.Text = "Data Successfully Inserted";
                 Label5.ForeColor = System.Drawing.Color.Green;
                 TextBox1.Text = string.Empty;
                 TextBox2.Text = string.Empty;
                 TextBox3.Text = string.Empty;
             }
         }
     }
 }
 

Step 8 : Deploy the solution file and add the created webpart to the SharePoint site.
 
Step 9 : The output of the person list looks like this:

Output4.png
 
Step 10 : The output of the application looks like this:

Output5.png
 
Step 11 : The output of the data inserting application looks like this:

Output6.png
 
Step 12 : The output of the data inserted in person list looks like this:

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

Up Next
    Ebook Download
    View all
    Learn
    View all
    MVC Corporation is consulting and IT services based company.
    
    View All Comments