3 tire simple steps

HEY , HERE I AM GOING TO A SIMPLE 3 TIRE ARCHITECTURE APPLICATION IN ASP.NET
HERE I HAD CREATED DATABASE AND TABLE IN (MICROSOFT SQL SERVER MANAGER STUDIO)
OPEN MICROSOFT SQL SERVER MANAGER STUDIO
FIRST IT WILL ASK YOU TO CONNECT TO DATABASE ENGINE YOU CAN SEE SERVER NAME,
WHICH IS BESICALLY SERVER NAME OF YOUR SQL SERVER MANAGER NOTE THIS THIG IT WILL HELP
YOU TO CONNECT YOUR ASP.NET PROJECT TO DATABASE ENGINE WITHOUT THAT YOU CANT CONNECT TO DATABASE.
CLICK ON  CONNECT.
THEN..

NOW, WE HAVE TO CREATE DATABASE THEN IN THAT DATABASE WE HAVE TO CREATE
A TABLE IT IS THE FIRST STEP SO I AM GOING TO CREATE A  SMALL TABLE WHICH HAVE 2 FIELDS


CREATING DATABASE:-
CREATE DATABASE DBSTUDENTDETAILS
USE DBSTUDENTDETAILS

CREATING TABLE:-
CREATE TABLE TBLSTUDENT
(
STUDENTID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
STUDENTNAME VARCHAR(30) NOT NULL
)

AFTER THAT I HAD CREATED 4 STORED PROCEDURE TO PERFORM INSERT, UPDATE, DELETE , SELECT

NOTE:- WHEN YOU ARE CREATING STORED PROCEDURE USE SAME FIELD NAME WHICH YOU HAD USED IN YOUR TABLE
       AND WE DONT REQUIRED CONSTRAIN(PRIMARY KEY,NOT NULL ETC..) IN STORED PROCEDURE WE ALREADY GIVEN IN CREATING TABLE.
1) STORED PROCEDURE FOR SELECTSTUDENT

CREATE PROCEDURE SELECTSTUDENT
AS
BEGIN
SELECT * FROM TBLSTUDENT
END

2) STORED PROCEDURE FOR INSERTSTUDENT

CREATE PROCEDURE INSERTSTUDENT
@STUDENTNAME VARCHAR(30)
AS
BEGIN
INSERT INTO TBLSTUDENT (STUDENTNAME) VALUES (@STUDENTNAME)
END

3) CREATE STOREDPROCEDURE FOR UPDATESTUDENT

CREATE PROCEDURE UPDATESTUDENT
@STUDENTID INT,
@STUDENTNAME VARCHAR(30)
AS
BEGIN
UPDATE TBLSTUDENT SET STUDENTNAME = @STUDENTNAME WHERE STUDENTID = @STUDENTID
END

4) CREATE STOREDPROCEDURE FOR DELETESTUDENT

CREATE PROCEDURE DELETESTUDENT
@STUDENTID INT
AS
BEGIN
DELETE FROM TBLSTUDENT WHERE STUDENTID = @STUDENTID
END

-------------------SO WORK OF DATABASE IS FINISH HERE---------------------------

NOW NEXT STEP IS OPEN VISUAL STUDIO
FILE>NEW WEB SITE>ASP.NET EMPTY WEB SITE(IF YOU WANT TO SAVE YOUR PROJECT INS SPECIFIC SPACE THEN
CLICK ON (BROWSE..) AND YOU KNOW WHAT TO DO NEXT SO NOT TALKING ABOUT THAT)>OK

NOW YOU WILL GET AN EMPTY WEB SITE PROJECT.

SO NEXT STEP IS CONNECT YOUR PROJECT TO YOUR DTABASE WITHOT CONNECTING YOU CANT WORK ON DATABASE SO FOR THAT
SEE LEFT SIDE OF YOUR COMPUTER SCREEN SERVER EXPLORER. YOU CAN SEE DATA CONNECTION RIGHT CLICK FROM MOUSE THEIR
AND CLICK ON ADD CONNECTION. YOU WILL GET A BOX SO HERE IN SERVER NAME YOU HAVE TO PUT SERVER NAME WHICH WE HAD DISSCUSS


THEN  LOOK SECOND HALF OF THAT BOX YOU HAVE CAN SEE SELECT A DATABASE NAME OR ENTER DATABASE NAME. YOU CAN SELECT
YOUR DATABASE THEIR THEN CLICK ON OK.

YOU CAN SEE THAT LEFT SIDE YOUR DATABASE IS ADDED HERE RIGHT CLICK ON YOUR DATABASE AND SELECT ON PROPERTY.RIGHT SIDE YOU CAN
SEE PROPERTY OF YOUR PROPERTY OF DATABASE YOU WILL GET CONNECTION STRING OF YOUR DATABASE SELECT WHOLE CONNECTION STRING AND COPY IT,


OPEN WEB.CONFIG FILE FROM SOLUTION EXPLORER (YOU HAVE TO PASTE THAT CONNECTION STRING IN CONNECTIONSTRING="==HERE==" YOU CAN SEE HERE.)
<configuration>

    <connectionStrings>
      <add name="CON" connectionString="Data Source=SUNNY\SQLEXPRESS;Initial Catalog=DBSTUDENTDETAILS;Integrated Security=True"/>
    </connectionStrings>
    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>

</configuration>



NOW WE ARE GOING TO CREATE 2 MAIN CLASS FILE FOR 3 TIRE ARCHITECTURE.
1) DATA ACCESS LAYER
2)BUSINESS ACCESS LAYER

1) IN SOLUTION EXPLORER RIGHT CLICK ON YOUR PROJECT ADD>ADD NEW ITEM>SELECT A CLASS FILE
I AM GOING TO GIVE NAME DATAACCEESSCLASS.CS. NOW VISUAL STUDIO WILL ASK YOU
DO YI=OU WANT TO CREATE A SEPRATE FOLDER FOR YOUR THIS CLASS FILE(APP_CODE)
PRESS YES....
FIRST OF ALL WE HAVE TO ADD 3 NAMESPACES

USING SYSTEM.DATA;
USING SYSEM.DATA.SQLCLIENT;
USING SYSTEM.CONFIGURATION;

THEN CREATE A NAMESPACE DATAACCESSLAYER. AND WE HAVE TO CODE IN THIS NAMESPACE
----NAME SPACE NI ANDAR CLASS AVSE AENI ANDAR CODE KARVA NU RESE----
MOSTLY LOKO CLASS DIRECT BANAVI DE ANE P6I AE CLASS FILE NE BUSINESS ACCEESS LAYER MA ADD KARVA NU AVE NE

:---DATA ACCESS LAYER INTRACT TO DATABASE AND TO CALL STORED PROCEDURE AND TABLE .----:
MEANS KI DATABASE ME SE TABLE OR STORED PROCEDURE KO YAHA BULAYA GAYA OR YAHA SE BUSINESS ACCESS LAYER
SE INTRACT HOGA...---:

class name = DATAACCESSCLASS.CS
NAME SPACE= DATAACCESSLAYER

CODE OF DATAACCESSCLASS.CS:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DATAACCESSLAYER
{

    public class DATAACCESSCLASS
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
       
        public DataSet al_bind()
        {
            SqlDataAdapter sda = new SqlDataAdapter("SELECTSTUDENT", conn);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            return ds;
        }
        public void insert_student(SqlCommand cmd)
        {
            conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = "INSERTSTUDENT";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        public void update_student(SqlCommand cmd)
        {
            conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = "UPDATESTUDENT";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        public void delete_student(SqlCommand cmd)
        {
            conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = "DELETESTUDENT";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.ExecuteNonQuery();
            conn.Close();
        }

    }
}

------------AFTER CREATING DATA ACCESS LAYER WE ARE GOING TO CREATE BUSINESS ACCESS LAYER-------------

AS WE HAD CREATED DATAACCESS CLASS WE HAVE TO CREATE BUSINESS ACCESS LAYER AND BUSINESS ACCESS CLASS:=

CLASSNAME= BUSINESSACCESSCLASS.CS
NAMESPACE = BUSINESSACCESSLAYER
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using DATAACCESSLAYER;

namespace BUSINESSACCESSLAYER
{

    public class BUSINESSACCESSCLASS
    {
        SqlCommand CMD = new SqlCommand();
        DATAACCESSCLASS D = new DATAACCESSCLASS();
        public int STUDENTID { get; set; }
        public string  STUDENTNAME { get; set; }

        public DataSet AL_BIND()
        {
            return D.al_bind();
        }
        public void INSERT_RECORD()
        {
            CMD.Parameters.AddWithValue("@STUDENTNAME", STUDENTNAME);
            D.insert_student(CMD);
        }
        public void UPDATE_RECORD()
        {
            CMD.Parameters.AddWithValue("@STUDENTID", STUDENTID);
            CMD.Parameters.AddWithValue("@STUDENTNAME", STUDENTNAME);
            D.update_student(CMD);
        }
        public void DELETE_RECORD()
        {
            CMD.Parameters.AddWithValue("@STUDENTID", STUDENTID);
            D.delete_student(CMD);
        }
       
    }
}


----------NOW WE ARE GOING T0 CREATE DESIGN------------------
WE NEED JUST
1 BUTTON
1 TEXTBOX
1 GRIDVIEW FOR DATA SHOW (WE WILL PERFOR CRUD OPERATION IN GRIDVIEW'S EVENTS)

1)default.aspx(designing page)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
            <asp:TextBox ID ="txtstudentnam" runat="server"></asp:TextBox>
            <asp:Button ID="btnsavestudent" runat="server" Text="save student name" OnClick="btnsavestudent_Click" />
        <br /> <br /> <br /> <br />
        <asp:GridView ID="gridstudentdetails" runat="server" AutoGenerateColumns="False" DataKeyNames="STUDENTID" OnRowCancelingEdit="gridstudentdetails_RowCancelingEdit" OnRowDeleting="gridstudentdetails_RowDeleting" OnRowEditing="gridstudentdetails_RowEditing" OnRowUpdating="gridstudentdetails_RowUpdating" Width="318px">
            <Columns>
                <asp:BoundField DataField="STUDENTID" HeaderText="studentname" ReadOnly="True" />
                <asp:BoundField DataField="STUDENTNAME" HeaderText="student name" />
                <asp:CommandField ShowEditButton="True" />
                <asp:CommandField ShowDeleteButton="True" />
            </Columns>
            </asp:GridView>   
    </div>
    </form>
</body>
</html>

2)default.aspx.cs
back end file

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

public partial class _Default : System.Web.UI.Page
{
    BUSINESSACCESSCLASS b = new BUSINESSACCESSCLASS();

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            fillgridstudentdetails();
        }
    }

    private void fillgridstudentdetails()
    {
        DataSet ds = b.AL_BIND();
        gridstudentdetails.DataSource = ds;
        gridstudentdetails.DataBind();
    }
    protected void btnsavestudent_Click(object sender, EventArgs e)
    {
        b.STUDENTNAME = txtstudentnam.Text;
        b.INSERT_RECORD();
        fillgridstudentdetails();
    }
    protected void gridstudentdetails_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gridstudentdetails.EditIndex = e.NewEditIndex;
        fillgridstudentdetails();
    }
    protected void gridstudentdetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        b.STUDENTID = Int32.Parse(gridstudentdetails.DataKeys  [e.RowIndex].Value.ToString());
        TextBox tx = (TextBox)gridstudentdetails.Rows[e.RowIndex].Cells[1].Controls[0];
        b.STUDENTNAME = tx.Text;
        b.UPDATE_RECORD();
        gridstudentdetails.EditIndex = -1;
        fillgridstudentdetails();
    }
    protected void gridstudentdetails_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        b.STUDENTID = Int32.Parse(gridstudentdetails.DataKeys[e.RowIndex].Value.ToString());
        b.DELETE_RECORD();
        fillgridstudentdetails();
    }
    protected void gridstudentdetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gridstudentdetails.EditIndex = -1;
        fillgridstudentdetails();
    }
}




Comments

Popular posts from this blog

Asp.Net Validation

Fundamental of OOPS From Scratch to End