Sunday, 1 January 2017

How to use Radio Button List in a gridview using Asp.Net

Description:


Here we define how we can use radio button list in gridview using asp.net. Here we follow 3 Tier or Layer Architecture to bind a dropdown list in a gridview.

SQL Table:


Here we define SQL Script to create a table. We create a Table name Employee_Info.

CREATE TABLE [dbo].[Employee_Info](
 [ID] [int] IDENTITY(1,1) NOT NULL,
 [Employee_Name] [varchar](50) NULL,
 [Mobile_No] [varchar](50) NULL,
 [Marital_Status] [varchar](50) NULL,
 [City] [varchar](50) NULL
) ON [PRIMARY]

GO

SQL Procedure:


Here we use two procedures, one for insert data in to table and second for bind data with gridview.
--//--------------------- FOR INSERT UPDATE AND DELETE DATA-------//


Create procedure [dbo].[Insert_Employee_Data]


(
@Mode int,
@ID int,
@Employee_Name varchar(50),
@Mobile_No varchar(50),
@Marital_Status varchar(50),
@City varchar(50)
)

as



if(@Mode=0)
 begin
     insert into Employee_Info (Employee_Name,Mobile_No,Marital_Status,City) values (@Employee_Name,@Mobile_No,@Marital_Status,@City)
 end



if(@Mode=1)
 begin 
     delete from Employee_Info where ID=@ID
 end
 


 if (@Mode=2)
  begin
      update Employee_Info set Employee_Name=@Employee_Name, Mobile_No=@Mobile_No,Marital_Status=@Marital_Status, City=@City where ID=@ID
   end


--//----------------------------- FOR GET DATA--------------------------//

create procedure [dbo].[Get_Employee_Data]  
(  
@Mode int,  
@ID int  
)  
as  
if(@Mode=0)  
begin  
select * from Employee_Info  
end  


ASPX Page:


<%#Container.DataItemIndex + 1%> "> "> "> "> "> Single Married Single Married "> "> " tooltip="Delete" onclientclick="return confirm("Are you sure you want to Delete?");">Delete

Presentation Layer:


Here we use 3 layer architecture, Presentation Layer, Business Layer, Data Access Layer. First we define the code of Presentation Layer.

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


namespace Dropdown_in_gridview
{
    public partial class Employee_Info : System.Web.UI.Page
    {
        DataTable dt = new DataTable();
        Business_Class BCobj = new Business_Class();
        Data_Class DCobj = new Data_Class();
        int EffectRow;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Get_Data();
            }
        }


        public void Get_Data()
        {
            BCobj.Mode = 0;
            dt = BCobj.Customer_Info_Get_BL();
            GridView1.DataSource = dt;
            GridView1.DataBind();

        }

        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            Get_Data();

        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            Get_Data();
        }

        public void Insert( object sender, EventArgs e)
        {
            BCobj.Mode = 0;
            BCobj.Employee_Name = ((TextBox)GridView1.FooterRow.FindControl("txt_Employee")).Text;
            BCobj.Mobile_No = ((TextBox)(GridView1.FooterRow.FindControl("txt_Mobile"))).Text;
            BCobj.Marital_Status = ((DropDownList)(GridView1.FooterRow.FindControl("DropDownList1"))).Text;
            BCobj.City = ((TextBox)(GridView1.FooterRow.FindControl("txt_City"))).Text;
            EffectRow = BCobj.Customer_Info_Insert_BL();

            if (EffectRow > 0)
            {
                Label1.Text = "Data Insert Sucessfully";

                Get_Data();
            }
            else
            {
                Label1.Text = "Data not Inserted";

                Get_Data();
            }
        }

        public void Delete(object sender, EventArgs e)
        {
            BCobj.Mode = 1;
            BCobj.ID = Convert.ToInt32((sender as LinkButton).CommandArgument);
            EffectRow = BCobj.Customer_Info_Insert_BL();
            if (EffectRow > 0)
            {
                Label1.Text = "Delete Successfully";
                Get_Data();
            }
            else
            {
                Label1.Text = "Data not deleted";
                Get_Data();
            }
        }

        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            BCobj.Mode = 2;
            BCobj.ID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
            BCobj.Employee_Name=((TextBox)(GridView1.Rows[e.RowIndex].FindControl("txt_Employee"))).Text;
            BCobj.Mobile_No = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("txt_Mobile"))).Text;
            BCobj.Marital_Status = ((DropDownList)(GridView1.Rows[e.RowIndex].FindControl("DropDownList1"))).Text;
            BCobj.City = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("txt_City"))).Text;

            EffectRow = BCobj.Customer_Info_Insert_BL();

            if (EffectRow > 0)
            {
                Label1.Text = "Update successfully";
                GridView1.EditIndex = -1;
                Get_Data();
            }
            else
            {
                Label1.Text = "Update UnSeccessful";
                GridView1.EditIndex = -1;
                Get_Data();
            }
        }

        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            Get_Data();
        }

       
    }
}

Business Layer:


In 3 Layer Architecture, Second Layer is Business Logic Layer. Here we define business logic layer to define properties and business logic. Create a class with name Business_Class.

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

namespace Business_Layer
{

    public class Business_Class
    {

        //----------------Properties-----------------------// 

        #region properties
        private int _intID = 0;


        private int _Mode = 0;
        public int Mode
        {
            get { return _Mode; }
            set { _Mode = value; }
        }

        private int _ID = 0;
        public int ID
        {
            get { return _ID; }
            set { _ID = value; }
        }

        private string _Employee_Name = string.Empty;
        public string Employee_Name
        {
            get { return _Employee_Name; }
            set { _Employee_Name = value; }
        }

        private string _Marital_Status = string.Empty;
        public string Marital_Status
        {
            get { return _Marital_Status; }
            set { _Marital_Status = value; }
        }

        private string _Mobile_No = string.Empty;
        public string Mobile_No
        {
            get { return _Mobile_No; }
            set { _Mobile_No = value; }
        }

        private string _City = string.Empty;
        public string City
        {
            get { return _City; }
            set { _City = value; }
        }

        #endregion

        #region method


        //--------------------Get Data-------------------//
        public DataTable Customer_Info_Get_BL()
        {

            Data_Layer.Data_Class DCobj = new Data_Layer.Data_Class();
            return DCobj.Customer_info_Get_DL(this);
        }


        //------------------Insert Data------------------//

        public int Customer_Info_Insert_BL()
        {
            int EffectRow = 0;
            Data_Layer.Data_Class DCobj = new Data_Layer.Data_Class();

            if (_intID == 0)
            {
                EffectRow = DCobj.Customer_info_Insert_DL(this);
            }
            return EffectRow;
        }
        #endregion
    }
}

Data Access Layer:


In 3 layer architecture, 3rd Layer is Data Access Layer. We use Data Layer to access data from database. Here we define Data Access Layer with two Class. 1. Data Layer Class 2. ADO Layer Class

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

namespace Data_Layer
{
    public class Data_Class
    {
        public DBManager DBManager = new DBManager();
        int EffectRow;




        //--------------------- Get Data -------------------------//


        public DataTable Customer_info_Get_DL(Business_Layer.Business_Class BCobj)
        {
            SqlParameter[] param = new SqlParameter[2];
            param[0] = new SqlParameter("@Mode", BCobj.Mode);
            param[1] = new SqlParameter("ID", BCobj.ID);

            return DBManager.ExecuteProcedure(param, "Get_Employee_Data");
        }


        //---------------------------Insert Data ---------------------//

        public int Customer_info_Insert_DL(Business_Layer.Business_Class BCobj)
        {
            //int RowEffected;
            SqlParameter[] param = new SqlParameter[6];

            param[0] = new SqlParameter("@Mode", BCobj.Mode);
            param[1] = new SqlParameter("@ID", BCobj.ID);
            param[2] = new SqlParameter("@Employee_Name", BCobj.Employee_Name);
            param[3] = new SqlParameter("@Marital_Status", BCobj.Marital_Status);
            param[4] = new SqlParameter("@Mobile_No", BCobj.Mobile_No);
            param[5] = new SqlParameter("@City", BCobj.City);

            try
            {
                EffectRow = DBManager.update(param, "Insert_Employee_Data");
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }
            return EffectRow;

        }
    }
}

ADO Layer:


ADO Layer Class use for SQL Connection and Command to access SQL database. Here we use a class with name DBManager

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

namespace Data_Layer
{
    public class DBManager
    {
        string Connectionstring;
        SqlCommand cmd;
        SqlConnection conn;
        int EffectedRows = 0;

        public DBManager()
        {
            string Connectionstring = "Data Source='Test-PC'; Initial Catalog='Practise'; User Id='sa'; Password='sa@123'; ";
            conn = new SqlConnection(Connectionstring);
        }


//for open a connection

        public void OpenConnection()
        {
            if (conn.State == System.Data.ConnectionState.Closed)
            {
                conn.Open();
            }

        }
// Close a connection

        public void CloseConnection()
        {
            if (conn.State == System.Data.ConnectionState.Open)
            {
                conn.Close();
            }
        }

        public void Dispose()
        {
            conn.Dispose();
            conn = null;
        }
// INSERT DATA

        public int update(SqlParameter[] param, String SpName)
        {

            OpenConnection();

            try
            {

                SqlCommand cmd = new SqlCommand();

                cmd.Connection = conn;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = SpName;

                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.Add(param.GetValue(i));
                }

                int EffectedRows = cmd.ExecuteNonQuery();
                CloseConnection();
                return EffectedRows;
            }
            catch
            {
                CloseConnection();
                Dispose();
                return 0;
            }
        }

//GET DATA
        public DataTable ExecuteProcedure(SqlParameter[] param, String SpName)
        {
            DataTable dt = new DataTable();
            SqlDataAdapter adp = new SqlDataAdapter();
            OpenConnection();
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.CommandText = SpName;
                cmd.CommandType = CommandType.StoredProcedure;

                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.Add(param.GetValue(i));
                }

                adp.SelectCommand = cmd;
                adp.Fill(dt);

                CloseConnection();
                return dt;
            }
            catch
            {

                CloseConnection();
                Dispose();
                return dt;
            }



        }


    }
}

No comments:

Post a Comment