3 Tier Architecture - In need of an example

前端 未结 9 1495
孤城傲影
孤城傲影 2020-12-12 13:53

Presently I am working using single tier architecture. Now I am wanting to learn how to write code using 3 tier architecture. Please can you provide me with a simple example

9条回答
  •  无人及你
    2020-12-12 14:27

    connection class
    -----------------------
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Web .UI.WebControls ;
    /// 
    /// Summary description for conn
    /// 
    namespace apm_conn
    {
        public class conn
        {
            public SqlConnection getcon()
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString );
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                return con;
            }
            #region execute command
            public string  Executecommand(SqlParameter []sqlparm,string sp)
            {
                string r_val = "";
                try
                {
    
                    SqlConnection con = new SqlConnection();
                    con = getcon();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = con;
                    cmd.CommandText = sp;
                    cmd.CommandType = CommandType.StoredProcedure;
                    foreach (SqlParameter loopvar_parm in sqlparm)
                    {
                        cmd.Parameters.Add(loopvar_parm);
    
                    }
                    cmd.Parameters.Add("@Var_Output", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                    cmd.ExecuteNonQuery();
                    r_val = (string)cmd.Parameters["@Var_Output"].Value;
                    con.Close();
                }
                catch { }
                return r_val;
    
            }
    
            #endregion
            #region Execute Dataset
             public DataSet ExeccuteDataset(SqlParameter[] sqlParm, string sp)
        {
            DataSet ds = new DataSet();
            try
            {
                SqlConnection con = new SqlConnection();
                con = getConn();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = sp;
                foreach (SqlParameter LoopVar_param in sqlParm)
                {
                    cmd.Parameters.Add(LoopVar_param);
                }
                cmd.ExecuteNonQuery();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
    
            }
            catch
            { }
            return ds;
        }
            #endregion
            #region grid
            public void Bindgrid(DataSet ds,GridView g)
            {
                try
                {
                    g.DataSource = ds.Tables[0];
                    g.DataBind();
    
                }
                catch { }
            }
            #endregion
            #region Dropdownlist
            public void Binddropdown(DropDownList dl,DataSet ds,string text,string value)
            {
                try
                {
                    dl.DataSource = ds.Tables[0];
                    dl.DataTextField = text;
                    dl.DataValueField = value;
                    dl.DataBind();
                }
                catch
                {}
    
            }
            #endregion
            public conn()
            {
                //
                // TODO: Add constructor logic here
                //
            }
        }
    }
    
    
    
    
    dal
    ---------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using apm_conn;
    using System.Data.SqlClient;
    using apm_ent;
    
    /// 
    /// Summary description for Class1
    /// 
    namespace apm_dal
    {
        public class dal
        {
            conn ob_conn = new conn();
            public dal()
            {
                //
                // TODO: Add constructor logic here
                //
            }
            public string insert(ent obj_ent)
            {
                SqlParameter[] sqlparm =
            {
                new SqlParameter ("@Var_Action",obj_ent.Var_Action),
                new SqlParameter ("@Int_Id",obj_ent.Int_Id ),
                 new SqlParameter ("@Var_Product",obj_ent.Var_Product ),
                  new SqlParameter ("@Dc_Price",obj_ent.Var_Price ),
                  new SqlParameter ("@Int_Stat",obj_ent.Int_Stat ),
    
                                   };
                return ob_conn.Executecommand(sqlparm, "Proc_product");
            }
            public string ins(ent obj_ent)
            {
                SqlParameter[] parm =
            {
                new SqlParameter ("@Var_Action",obj_ent .Var_Action),
                new SqlParameter ("@Int_Id",obj_ent .Int_Id),
                                };
                return ob_conn.Executecommand(parm, "Proc_product");
            }
        }
    
    }
    
    bal
    -------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using apm_ent;
    using apm_dal;
    
    /// 
    /// Summary description for bal
    /// 
    namespace apm_Bal
    {
    
        public class bal
        {
            dal ob_dal = new dal();
            string r_val = "";
            public bal()
            {
                //
                // TODO: Add constructor logic here
                //
            }
            public string insert(ent obj_ent)
            {
                return ob_dal.insert(obj_ent);
            }
        }
    }
    
    
    
    Ent
    ------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// 
    /// Summary description for ent
    /// 
    namespace apm_ent
    {
        public class ent
        {
            public ent()
            {
                //
                // TODO: Add constructor logic here
                //
            }
            #region Ent
            public int Int_Id { get; set; }
            public string  Var_Action { get; set; }
            public string Var_Product { get; set; }
            public decimal  Var_Price { get; set; }
            public int Int_Stat { get; set; }
            #endregion
        }
    }
    
    
    
    page code
    --------------
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using apm_conn;
    using apm_ent;
    using apm_Bal;
    using apm_conn;
    public partial class _Default : System.Web.UI.Page
    {
        conn obj_conn = new conn();
        ent obj_ent = new ent();
        bal obj_bal = new bal();
        string r_val = "";
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void btnsub_Click(object sender, EventArgs e)
        {
            obj_ent.Var_Action = "INS";
            obj_ent.Var_Product = txtproduct.Text;
            obj_ent.Var_Price = Convert.ToDecimal (txtprice.Text);
            r_val = obj_bal.insert(obj_ent);
            if (r_val == "1")
            {
                Response.Write("");
            }
        }
    }
    

提交回复
热议问题