[C#学习笔记28]项目实战之课程管理系统开发的项目框架搭建与准备工作
课程管理系统项目框架搭建
一、项目需求分析
根据需求分析设计好项目的功能
二、项目框架的选择
1、小型项目可以根据需要选择两层或三层结构
2、中大型项目至少是三层架构和其他架构组合
三、框架的搭建
1、UI设计好
2、添加需要的模块(Models、DAL、BLL)
添加类库CourseManageModels、CourseManageDAL、CourseManageBLL
1)CourseManageModels实体类包括Course.cs、CourseCategory.cs、Teacher.cs

结合数据库写实体类:
文件Course.cs内容:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseManageModels
{
/// <summary>
/// 课程实体类
/// </summary>
[Serializable]//序列化
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
public string CourseContent { get; set; }
public int ClassHour { get; set; }
public int Credit { get; set; }
public int CategoryId { get; set; }
public int TeacherId { get; set; }
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseManageModels
{
public class CourseCategory
{
public int CategoryId { get; set; }
public string CategoryName{ get; set; }
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseManageModels
{
public class Teacher
{
public int TeacherId { get; set; }
public string LoginAccount { get; set; }
public string LoginPwd { get; set; }
public string TeacherName { get; set; }
public string PhoneNumber { get; set; }
public string NowAddress { get; set; }
}
}

2)CourseManageDAL添加数据访问类包括CourseService.cs、CourseCategoryService.cs、TeacherService.cs、Helper\SQLHelper.cs(通用数据访问类)
3)CourseManageBLL添加业务逻辑类包括CourseManager.cs、CourseCategoryManager.cs、TeacherManager.cs

3、添加模块之间的引用,添加完成后重新生成解决方案。
1)DAL添加引用System.Configuration用于读取连接数据库的配置文件和CourseManageModels(在引用管理器的项目中),并在SQLHelper.cs添加命名空间
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
2)BLL添加引用CourseManageModels、CourseManageDAL
3)UI添加引用CourseManageBLL、CourseManageModels
4、通用数据访问类准备好
SQLHelper.cs内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace CourseManageDAL
{
/// <summary>
/// 通用数据访问类
/// </summary>
public class SQLHelper
{
private static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
/// <summary>
/// 执行insert、update、delete类型的SQL语句
/// </summary>
/// <param name="sql"></param>
/// <returns>受影响的行数</returns>
public static int Update(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql,conn);
try
{
conn.Open();
return cmd.ExecuteNonQuery();
}
catch ( Exception ex)
{
//捕获ex对象相关信息并保存到日志文件中...
throw new Exception("执行public static int Update(string sql)发生异常:"+ex.Message);
}
finally
{
conn.Close();
}
}
/// <summary>
/// 执行单一结果查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object GetSingleResult(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
//捕获ex对象相关信息并保存到日志文件中...
throw new Exception("执行public static object GetSingleResult(string sql)发生异常:" + ex.Message);
}
finally
{
conn.Close();
}
}
/// <summary>
/// 执行一个结果集的查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
//捕获ex对象相关信息并保存到日志文件中...
throw new Exception("执行public static SqlDataReader GetReader(string sql)发生异常:" + ex.Message);
}
finally
{
conn.Close();
}
}
}
}
5、一定要重新生成解决方案