用三层结构实现添加学生

一:整理一下总体思路

首先三层结构有:最上面:用户界面层MySchoolUI

                               中间一层:业务逻辑层MySchoolBLL

                               最下面是:数据库层MySchoolDal

   依赖关系是从上层依赖下层

        还有 一个实体类:MySchoolEntity

    其他三层都依赖实体类MySchoolEntity

二:具体实现

(1)MySchoolEntity

实现一个student.cs

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

namespace MySchoolEntity
{
    public  class Student
    {
        public string Id;
        public string Name;
        public string Gender;
        public string Major;
        public int Grade;
        public int TheClass;
    }
}

(2)MySchoolDal

提取公共的方法:减少代码的重复

DbHelper.cs

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

namespace MySchoolDAL
{
   public class DbHelper
   {
       public static void myExecute(string sql)
       {
           string s = "server=.;database=SampleDb;Integrated Security=true;";
           SqlConnection conn = new SqlConnection(s);
           SqlCommand cmd = new SqlCommand();
           cmd.CommandText = sql;
           cmd.Connection = conn;
           conn.Open();
           cmd.ExecuteNonQuery();
           conn.Close(); 
       }

    }
}

studentDal.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using MySchoolEntity;
namespace MySchoolDAL
{
    public class StudentDal
    {
        public void insert(Student student)
        {
            
          string sql = string.Format("insert into Student(Id,Name,Gender,Major,Grade,Class) values('{0}','{1}','{2}','{3}',{4},{5})",
                student.Id, student.Name,student.Major, student.Gender, student.Grade, student.TheClass);
          DbHelper.myExecute(sql);
        }

    }
}

(3)MySchoolBll

studentBll.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySchoolEntity;
using MySchoolDAL;

namespace MySchoolBll
{
    public class StudentBll
    {
        public void insert(Student s)
        {  
           //检查业务逻辑
            if(s.Grade>2012||s.Grade<2009)
                throw new Exception("年纪错误!");
            StudentDal  dal=new StudentDal();
            dal.insert(s);
        
        }

    }
}

(4)MyschoolUI

Addstudent.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySchoolEntity;
using MySchoolBll;

namespace MySchoolUI
{
    public partial class AddStudent : Form
    {
        public AddStudent()
        {
            InitializeComponent();
        }

        private void AddStudent_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Student student = new Student();
            student.Id = textId.Text;
            student.Name = textname.Text;
            student.Gender = radiomale.Checked ? "男" : "女";
            student.Major = textmajor.Text;
            student.Grade = int.Parse(textgrade.Text);
            student.TheClass =int.Parse( textclass.Text);
            StudentBll bll = new StudentBll();
            bll.insert(student);
            MessageBox.Show("添加成功!");
        }
    }
}

主窗口:

form1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace MySchoolUI
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值