.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
 
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
david stephan

Home >> Articles >> C# >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Three Tier Architecture -- Windows Application

Posted By:Narayanan       Posted Date: November 30, 2012    Points: 200    Category: C#    URL: http://www.dotnetspark.com  

Today we will learn Three Tier Architecture -- Windows Application
 

Introduction:

                   This Article describes How to build C Sharp Application using 3-Architecture.

Three Tier Architecture:

     

      Application /Presentation Layer >>Business Logic Layer >> Data Access Layer.


First, we start with Data Access Layer.

Data Access Layer:

                    The following information used in the Data Access Layer:

Queries.

Connection String.

Class Name: DLLoginMaster.


Table Name: tbl_LoginMaster

Table Description:  This table contains login Master Data.

Table Fields,Description and Field Type:            

  Id – This is a Primary Key of this Table.Login Id Stores here.It is Auto Increment.[int]

 Username – Login User name stores here.[Varchar(50)]

Password – Password of Username.Password stores here.[Varchar(50)].

FirstName—First Name of the User. First Name stores here. .[Varchar(50)]

LastName – Last Name of the User. Last Name stores here. .[Varchar(50)]

Active – user may alive or not .[bit].

Now, we go to Coding Section .

Create One Class file under DataLayer Folder.before, we create three folders in the your Project.

1)ApplicationLayer.2)BusinessLayer.3)DataLayer.

Step by Step:

Call SQLClient namespace in the Code page.



using System.Data.SqlClient;

Declare SQLConnection and Other Variables

private SqlConnection Con;

// Set your Server Name,DatabaseName,User Name and Password.

private string ConStr = "Server=<Server_Name>;Database=<Database>;User Id=<UserId>;Password=<Password>";

Copy the Code and Paste in your Class File

            public DLLoginMaster ()

        {

     }

            public bool InsertintoTable(BLLoginMaster BLUserMas)

        {

                  string query = "insert into tbl_LoginMaster(Username,Password,FirstName,LastName,Active) values('"+ BLUserMas.UserName +"','"+ BLUserMas.Password+"','"+ BLUserMas.FirstName +"','"+ BLUserMas.LastName+"','"+BLUserMas.Active +"')";      

     Con = new SqlConnection(ConStr);

            Con.Open();

            SqlCommand cmd = new SqlCommand(query, Con);

            try

            {

                cmd.ExecuteNonQuery();

                Con.Close();

                result = true;

           }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

                result = false;

            }

            finally

            {

                cmd.Dispose();

                Con.Close();

                Con.Dispose();

            }

            return result;

       }

public bool UpdateintoTable(BLLoginMaster BLUserMas)

        {

            string query = "update tbl_LoginMaster set Username='" + BLUserMas.UserName + "',Password='" + BLUserMas.Password + "',FirstName ='" + BLUserMas.FirstName + "',LastName='" + BLUserMas.LastName + "',Active='" + BLUserMas.Active + "' where id='" + BLUserMas.UserId + "' ";

            Con = new SqlConnection(ConStr);

            Con.Open();

            SqlCommand cmd = new SqlCommand(query, Con);

            try

            {

               cmd.ExecuteNonQuery();

                Con.Close();

                result = true;

            }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

                result = false;

            }

            finally

            {

                cmd.Dispose();

                Con.Close();

                Con.Dispose();

            }

            return result;

        }

        public bool DeletefromTable(BLLoginMaster BLUserMas)

        {

            string query = "delete from tbl_LoginMaster where id='" + BLUserMas.UserId + "' ";

            Con = new SqlConnection(ConStr);

            Con.Open();

            SqlCommand cmd = new SqlCommand(query, Con);

            try

            {

                cmd.ExecuteNonQuery();

                Con.Close();

                result = true;

            }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

                result = false;

            }

            finally

            {

                cmd.Dispose();

                Con.Close();

                Con.Dispose();

            }

            return result;

       }

        public DataSet FillData()

        {

            DataSet ds = null;

            try

            {

                string query = "Select distinct Username as [User Name],Password,FirstName as [First Name],LastName as [Last Name],Active from tbl_LoginMaster";

                Con = new SqlConnection(ConStr);

                Con.Open();

                SqlDataAdapter da = new SqlDataAdapter(query, Con);

                ds = new DataSet();

                da.Fill(ds);

                Con.Close();

            }

            catch (Exception e)

            {

                Program.WriteLog(e.Message, e.StackTrace);

            }

            return ds;

        }

        public string GetUserId(string str)

        {

            string query = "Select distinct id from tbl_LoginMaster where Password='" + str + "' ";

            Con = new SqlConnection(ConStr);

            Con.Open();

            SqlCommand cmd = new SqlCommand(query, Con);

            try

            {

                SqlDataAdapter adapter = new SqlDataAdapter(cmd);

                DataTable dt = new DataTable();

                adapter.Fill(dt);

                if (dt.Rows.Count > 0)

                {

                    DataColumn col = dt.Columns["id"];

                    foreach (DataRow row in dt.Rows)

                    {

                        id = row[col].ToString();

                    }

                }

                Con.Close();

                return id;

            }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

                return id;

            }

            finally

            {

                cmd.Dispose();

                Con.Close();

                Con.Dispose();

            }

        }

bool returnvalue;

        public bool CheckPassowrd(string Passwrd)

        {

            string query = "Select distinct password from userMaster where password='" + Passwrd + "'";

            Con = new SqlConnection(ConStr);

            Con.Open();

            SqlCommand cmd = new SqlCommand(query, Con);

            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            DataTable dt = new DataTable();

            adapter.Fill(dt);

            if (dt.Rows.Count > 0)

            {

              returnvalue = true;

            }

            Con.Close();

            return returnvalue;

        }

Here , We declare BLLoginMaster.Why we Declare BLLoginMaster?.Passing Data from BLLoginMaster to DLLoginMaster.

Business Layer :

      The following information used in the Business Layer:

      Create Methods/Functions

       Create Properties.

Class Name: BLLoginMaster

             

 Declare namespace:

            using <Project_Name>.DataLayer;

            using System.Data;

      using System.Windows.Forms;

Delcare Variable and data Layer Class:

              private static int _UserId;

        private static string _UserName;

        private static string _Password;

        private static string _Firstname;

        private static string _LastName;

        private static bool _Active;

        private DLLoginMaster DLUser;

  /// <summary>

        /// Property User Name

        /// </summary>

        public int UserId

        {

            get { return _UserId; }

            set { _UserId = value; }

        }

        /// <summary>

        /// Property User Name

        /// </summary>

        public string UserName

        {

            get { return _UserName; }

            set { _UserName = value; }

        }

        /// <summary>

        /// Property Password

        /// </summary>

        public string Password

        {

            get { return _Password; }

            set { _Password = value; }

        }

        /// <summary>

        ///  Property FirstName

        /// </summary>

        public string FirstName

        {

            get { return _Firstname; }

            set { _Firstname = value; }

        }

        /// <summary>

        ///  Property LastName

        /// </summary>

        public string LastName

        {

            get { return _LastName; }

            set { _LastName = value; }

        }

        /// <summary>

        ///  Property Active

        /// </summary>

        public bool Active

        {

            get { return _Active; }

            set { _Active = value; }

        }

        public bool SaveRecord()

        {

            bool Output;

            DLUser = new DLLoginMaster ();

            Output = DLUser.InsertintoTable(this);

            return Output;

        }

        public bool UpdateRecord()

        {

            bool Output;

            DLUser = new DLLoginMaster ();

            Output = DLUser.UpdateintoTable(this);

            return Output;

        }

        public bool DeleteRecord()

        {

            bool Output;

            DLUser = new DLLoginMaster ();

            Output = DLUser.DeletefromTable(this);

            return Output;

        }

        public DataSet FillData()

        {

            DataSet ds = null;

            DLUser = new DLLoginMaster ();

            ds = DLUser.FillData();

            return ds;

        }

        public string GetUserId(string str)

        {

            string Rid;

            DLUser = new DLLoginMaster ();

            Rid = DLUser.GetUserId(str);

            return Rid;

        }

public bool CheckPassword(TextBox txt)

        {

            bool Output;

            DLUser = new DLLoginMaster ();

            Output = DLUser.CheckPassowrd(txt.Text);

            if (Output)

            {

                Output = true;

            }

            else

            {

                Output = false;

            }

            return Output;

        }

            Application Layer:

      Drag and Drop Items:

                 No of TextBoxes = 4

                 No of Check Box =1

                 No Of Button =3

                 No of DataGridview =1

             Name of the Controls :

                  TextBox1 : txtUserNamet

                  TextBox2 : txtPasswordt

                  TextBox3 : txtFirstNamet

                  TextBox4 : txtLastName

                  Check Box: ChkActive

                  Button1:Add

                  Button2:Update

                  Button3:Delete

                  DataGridView:DGVFillData

Coding :

Declare NameSpace:

      using <Project_Name>.BusinessLayer;

Declare Variables

              private BLLoginMaster BLUserMas;

              bool SaveStatus;

        private void FillData()

        {

            BLUserMas = new BLLoginMaster ();

            DGFillData.DataSource = BLUserMas.FillData().Tables[0];

        }

  private void btn_Add_Click(object sender, EventArgs e)

        {

            InsertIntoTable();

        }

        private void btn_Update_Click(object sender, EventArgs e)

        {

            UpdateIntoTable();

        }

        private void btn_Delete_Click(object sender, EventArgs e)

        {

            DeleteFromTable();

        }

        private void InsertIntoTable()

        {

            try

            {

                BLUserMas = new BLLoginMaster ();

                BLUserMas.UserName = txtUsername.Text.ToString();

                BLUserMas.Password = txtPassword.Text.ToString();

                BLUserMas.FirstName = txtFirstname.Text.ToString();

                BLUserMas.LastName = txtLastname.Text.ToString();

                if (chkActive.Checked)

                {

                    BLUserMas.Active = true;

                }

                else

                {

                    BLUserMas.Active = false;

                }

                if (txtPassword.Text != "")

                {

                    BLUserMas = new BLLoginMaster ();

                    bool Result = BLUserMas.CheckPassword(txtPassword);

                    if (Result)

                    {

                        MessageBox.Show("Password Already Exists",);

                    }

                    else

                    {

                        SaveStatus = BLUserMas.SaveRecord();

                    }

                }

                if (SaveStatus)

                {

                    MessageBox.Show("Saved Successfully", "Gantec");

                    FillData();

                }

            }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

            }

        }

        private void UpdateIntoTable()

        {

            try

            {

                BLUserMas = new BLLoginMaster ();

                BLUserMas.UserName = txtUsername.Text.ToString();

                BLUserMas.Password = txtPassword.Text.ToString();

                BLUserMas.FirstName = txtFirstname.Text.ToString();

                BLUserMas.LastName = txtLastname.Text.ToString();

                if (chkActive.Checked)

                {

                    BLUserMas.Active = true;

                }

                else

                {

                    BLUserMas.Active = false;

                }

               int Index = DGFillData.CurrentRow.Index;

               string userId =                                    BLUserMas.GetUserId(Convert.ToString(DGFillData.Rows[Index].Cells[1].Value));

               BLUserMas.UserId  = Convert.ToInt32(userId);

                if (chkActive.Checked)

                {

                    BLUserMas.Active = true;

                }

                else

                {

                    BLUserMas.Active = false;

                }

                bool Status = BLUserMas.UpdateRecord();

                if (Status)

                {

                    MessageBox.Show("Updated Successfully", "Gantec");

                    FillData();

                }

            }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

            }

        }

        private void DeleteFromTable()

        {

            try

            {

                BLUserMas = new BLLoginMaster ();

                int Index = DGFillData.CurrentRow.Index;

                BLUserMas.UserId = Convert.ToInt32(DGFillData.Rows[Index].Cells[0].Value);

                bool Status = BLUserMas.DeleteRecord();

                if (Status)

                {

                    MessageBox.Show("Deleted Successfully", "Gantec");

                    FillData();

                }

            }

            catch (Exception ex)

            {

                Program.WriteLog(ex.Message, ex.StackTrace);

            }

        }


Conclusion:

               Thanks for Reading this Article.




 Subscribe to Articles

     

Further Readings:

Responses

No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend