Data Table Example For Temporary Storage in ASP.NET with C#

Description:-

In this Post I will explain how to create datatable and add new rows in datatable dynamically using asp.net, and this data table is bind to Gridview dynamically.

In many cases datatable is used to bind data from database but in this case I got requirement like dynamically build and create new rows to datatable in asp.net. Means when user inserts the data this data is not directly inserted to database but it will be stored in datatable user can inserts bunch of records this recordes are dynamically added to datatable and this data table is bind to gridview dynamically. When the records are in gridview, user can edit it. When user click submit button at that time all records will be inserted to database.

To implement this requirement we need to create one gridview after that add datatable in c# file after that add columns which you want to display in gridview.

Source Code(in ASP.NET):-

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head2" runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
            width: 100%;
        }
        .style2
        {
        }
        </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>
            Registration<asp:HiddenField ID="hid" runat="server" />
        </h1>
        <table class="style1">
            <tr>
                <td class="style2">
                    <asp:Label ID="lcname" runat="server" Text="Company Name"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcname" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcadd" runat="server" Text="Company Address"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcadd" runat="server" TextMode="MultiLine"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lstate" runat="server" Text="State"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="ddstate" runat="server">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcity" runat="server" Text="City"></asp:Label>
                </td>
                <td>
                    <asp:DropDownList ID="ddcity" runat="server">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcemail" runat="server" Text="Company Email"></asp:Label>
                </td>
                <td>
                    <asp:TextBox runat="server" ID="tcemail"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcurl" runat="server" Text="Company URL"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcurl" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcpname" runat="server" Text="Contact Person Name"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcpname" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcpadd" runat="server" Text="Contact Person Address"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcpadd" runat="server" TextMode="MultiLine"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcpno" runat="server" Text="Contact Person Cell No"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcpno" runat="server" MaxLength="10"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="lcpemail" runat="server" Text="Contact Person Email"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="tcpemail" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    &nbsp;
                </td>
                <td>
                    <asp:Button ID="badd" runat="server" OnClick="badd_Click" Text="add" ValidationGroup="vreg" />
                    <asp:Button ID="bcancle" runat="server" Text="Cancle" onclick="bcancle_Click" />
                </td>
            </tr>
            <tr>
                <td class="style2" colspan="2">
                    <asp:GridView ID="gvdetail" runat="server" AutoGenerateColumns="False" 
                        onrowediting="gvdetail_RowEditing" onrowdeleting="gvdetail_RowDeleting">
                        <Columns>
                            <asp:TemplateField HeaderText="Company Name">
                                <ItemTemplate>
                                   <asp:Label ID="Label1" runat="server" Text='<%#Eval("cname")%>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Company Address">
                                <ItemTemplate>
                                   <asp:Label ID="lcadd" runat="server" Text='<%#Eval("cadd") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Company State">
                                <ItemTemplate>
                                 <asp:Label ID="Label2" runat="server" Text='<%#Eval("state") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Company City">
                               <ItemTemplate>
                                  <asp:Label ID="Label3" runat="server" Text='<%#Eval("city") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="Company Email">
                               <ItemTemplate>
                               <asp:Label ID="Label4" runat="server" Text='<%#Eval("cemail") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

                           <asp:TemplateField HeaderText="Company URL">
                                <ItemTemplate>
                                    <asp:Label ID="Label5" runat="server" Text='<%#Eval("curl") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="Contact Person Name">
                                <ItemTemplate>
                                    <asp:Label ID="Label6" runat="server" Text='<%#Eval("cpname") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Contact Person Address">
                                <ItemTemplate>
                                    <asp:Label ID="Label7" runat="server" Text='<%#Eval("cpadd") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Contact Person Email">
                                <ItemTemplate>
                                   <asp:Label ID="Label8" runat="server" Text='<%#Eval("cpemail") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Contact Person Cell No.">
                                <ItemTemplate>
                                    <asp:Label ID="Label9" runat="server" Text='<%#Eval("cpno") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:LinkButton ID="lbedit" runat="server" CommandName="edit">Edit</asp:LinkButton>
                                </ItemTemplate>
                          
                           </asp:TemplateField>

                             <asp:TemplateField>

                                <ItemTemplate>
                                  <asp:LinkButton ID="lbdelete" runat="server" CommandName="delete">Delete</asp:LinkButton>
                                </ItemTemplate>
                             </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                    <asp:Button ID="breg" runat="server" Text="Register" OnClick="breg_Click" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

Code Behind(in C#):-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class Default : System.Web.UI.Page
{
static string str = @"Data Source=SQLDB;Persist Security"
+ "Info=True;UserID=Demod;Password=Demo1@";
    public static SqlConnection con = new SqlConnection(str);

    DataTable dtTemp = new DataTable();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            sqlobj.BindState(ddstate);
            Session["dt"] = null;
        }

        if (Session["dt"] == null)
        {
            dtTemp = new DataTable();

            dtTemp.Columns.Add("cname");
            dtTemp.Columns.Add("cadd");
            dtTemp.Columns.Add("state");
            dtTemp.Columns.Add("city");
            dtTemp.Columns.Add("cemail");
            dtTemp.Columns.Add("curl");
            dtTemp.Columns.Add("cpname");
            dtTemp.Columns.Add("cpadd");
            dtTemp.Columns.Add("cpno", typeof(System.Decimal));
            dtTemp.Columns.Add("cpemail");
            Session["dt"] = dtTemp;


        }
        else
        {
            dtTemp = (DataTable)Session["dt"];
        }
        if (dtTemp.Rows.Count > 0)
        {

            breg.Enabled = true;
        }


    }
    protected void breg_Click(object sender, EventArgs e)
    {

        int r = 0, l = dtTemp.Rows.Count;

        if (Page.IsValid)
        {

            for (r = 0; r < l; r++)
            {
                try
                {
                    string q = "insert into aby_CompanyReg values('" + dtTemp.Rows[r][0].ToString() + "', '" + dtTemp.Rows[r][1].ToString() + "', '" + dtTemp.Rows[r][2].ToString() + "', '" + dtTemp.Rows[r][3].ToString() + "', '" + dtTemp.Rows[r][4].ToString() + "', '" + dtTemp.Rows[r][5].ToString() + "', '" + dtTemp.Rows[r][6].ToString() + "', '" + dtTemp.Rows[r][7].ToString() + "', " + dtTemp.Rows[r][8].ToString() + ", '" + dtTemp.Rows[r][9].ToString() + "')";
                    SqlCommand cmd = new SqlCommand(q, con);
                    con.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception err)
                {
                }
                finally
                {
                    con.Close();
                }

            }

        }

    }
    protected void badd_Click(object sender, EventArgs e)
    {
        dtTemp.Rows.Add(tcname.Text, tcadd.Text, ddstate.SelectedItem.Text, ddcity.SelectedItem.Text, tcemail.Text, tcurl.Text, tcpname.Text, tcpadd.Text, tcpno.Text, tcpemail.Text);
        gvdetail.DataSource = dtTemp;
        gvdetail.DataBind();
        breg.Enabled = true;
        clr();
    }
    protected void gvdetail_RowEditing(object sender, GridViewEditEventArgs e)
    {
        breg.Enabled = false;
        hid.Value = e.NewEditIndex.ToString();


    }
    protected void gvdetail_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        dtTemp.Rows[e.RowIndex].Delete();

        Session["dt"] = dtTemp;
        gvdetail.DataSource = dtTemp;
        gvdetail.DataBind();

    }
    protected void bcancle_Click(object sender, EventArgs e)
    {
        clr();

    }
    protected void clr()
    {
        tcadd.Text = "";
        tcname.Text = "";
        tcemail.Text = "";
        tcurl.Text = "";
        tcpname.Text = "";
        tcpadd.Text = "";
        tcpemail.Text = "";
        tcpno.Text = "";
        ddstate.SelectedValue = "0";
        ddcity.SelectedValue = "0";

    }
}

Post a Comment