简单三层复习

2018-06-17 19:30:19来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

好久没复习了,以前学的,不复习的话,会遗忘,所以还是多复习多学习!废话不多说,开始~~~~

首先数据库脚本:

USE [DB_MyStudentLife]
GO

/****** Object:  Table [dbo].[MyClass]    Script Date: 11/26/2015 22:19:31 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[MyClass](
    [C_ID] [INT] NOT NULL,
    [C_Name] [NVARCHAR](200) NOT NULL,
    [C_Descr] [NVARCHAR](MAX) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [C_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

然后是实体层代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Entity
{
    public class ClassEntity
    {
        /// <summary>
        /// 班级编号
        /// </summary>
        public int CID { get; set; }

        /// <summary>
        /// 班级名称
        /// </summary>
        public string CName { get; set; }

        /// <summary>
        /// 班级描述
        /// </summary>
        public string CDescription { get; set; }
    }
}

然后是DAL层:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace DAL
{
   public class SQLHelper
    {
       /// <summary>
       /// 获取连接字符串
       /// </summary>
       public static string ConnectionString 
       {
           get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
       }

       /// <summary>
       /// 获取Datatable数据
       /// </summary>
       /// <param name="sql">SQL语句</param>
       /// <param name="type">命令类型</param>
       /// <param name="param">参数列表</param>
       /// <returns>返回DataTable类型</returns>
       public static DataTable GetDataTable(string sql,CommandType type,params SqlParameter[] param)
       {
           //创建连接对象
           using (SqlConnection conn = new SqlConnection(ConnectionString))
           {
               //创建数据适配器对象
               using (SqlDataAdapter sda = new SqlDataAdapter(sql, conn))
               { 
                   if(param!=null)
                   {
                       sda.SelectCommand.Parameters.AddRange(param);
                   }

                   sda.SelectCommand.CommandType = type;


                   DataTable table = new DataTable();

                   sda.Fill(table);

                   return table;

                 
               
               }
           }
       }
    }
}
using Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace DAL
{
    public class ClassDAL
    {
        /// <summary>
        /// 获取班级列表数据
        /// </summary>
        /// <returns></returns>
        public List<ClassEntity> GetList()
        {
            string sql = "SELECT * FROM dbo.MyClass;";

            DataTable table = SQLHelper.GetDataTable(sql, CommandType.Text);

            //此处不能直接new一个对象
            List<ClassEntity> classListModel = null;

            //table不为空
            if (table.Rows.Count > 0)
            {
                //要在这里new ,创建对象
                classListModel = new List<ClassEntity>();
                
                ClassEntity model = null;
                foreach (DataRow row in table.Rows)
                {
                    model = new ClassEntity();
                    //加载数据
                    LoadEntity(row, model);
                    classListModel.Add(model);
                }

            }
            return classListModel;

            
        }

        /// <summary>
        /// 加载数据
        /// </summary>
        /// <param name="row"></param>
        /// <param name="model"></param>
        public void LoadEntity(DataRow row, ClassEntity model)
        {
            if (row["C_ID"] != null)
            {
                model.CID = Convert.ToInt32(row["C_ID"]);
            }
            if (row["C_Name"] != null)
            {
                model.CName = row["C_Name"].ToString();
            }
            if (row["C_Descr"] != null)
            {
                model.CDescription = row["C_Descr"].ToString();
            }
        }
    }
}

然后是BLL层:

using DAL;
using Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
    public class ClassBLL
    {
        ClassDAL dal = new ClassDAL();

        /// <summary>
        /// 获取Class列表
        /// </summary>
        /// <returns></returns>
        public List<ClassEntity> GetList()
        {
            return dal.GetList();
        }
    }
}

然后是Web项目:

using BLL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Web
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ClassBLL bll = new ClassBLL();
           GridView1.DataSource= bll.GetList();
           GridView1.DataBind();
        }
    }
}

效果图:

DAL层的代码,表红色的部分,需要注意,如果实例化的位置出错了,就会得到下面的结果:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C#反射的简单示例

下一篇:文件读写,改进版