目录
Github地址:https://github.com/xiekangssq/local.git\n
1.系统概述
1.1国内外现状及发展趋势
目前随着IT技术的不断创新与发展,新的技术不断推出,各种信息化的解决方案不断成熟。面向对象程序设计语言的广泛使用,各种成熟关系数据库的不断完善与推出,再加上面向对象的软件开发过程广泛应用,软件开发过程变得越来越容易,开发出的系统变得越来越实用,许多企业使用信息系统后,明显提高了办事效率,带来了很大的经济收入。
随着联网的盛行及教学模式改革的需要,教学模式应该越来越趋向于网络教学方向发张,也就是说可以在网上完成几乎所有的教学内容。就我国目前计算机技术发展状况来看,我国软件技术、网络设施、安全措施的发展很大可能可以达到网络教学模式的要求。所以全面实现网络教学必然会使现有的传统教学模式的变革,并且教师和教师的工作习惯和工作方式也需要很长时间改变并适应新的环境,虽然有诸多问题,但是全面实现网络化教学模式仍然是势在必行。
2.可行性分析
2.1问题描述
随着学校规模的不断扩大,专业、班级、教师的数量急剧增加,教师数量也随之增多,有关教师的各种信息量也成倍增长,而目前许多高校的教师档案管理仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此该设计要求教师设计一套计算机“教师档案管理系统”,以提高信息的开放性,大大地改善了校领导、教师对其最新信息查询的准确性,从而提高管理水平和工作效率。
2.2可行性分析研究
当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道问题。
有无可行性的解决方法,进而避免人力、物力和才力的浪费。在现行系统初步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。系统目标应充分体现,直接为教师档案管理系统服务,并且,程序可以分期分批实现。但是,需要指出的是,系统目标是不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。以达到更加出色的程序系统。可是,目标的提法不尽相同,例如:
1)提高教师档案管理效率,减轻劳动强度;
2)提高信息处理速度和准确性;
3)为管理者提供更方便、科学的服务项目。
2.3技术可行性
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬、软件配置能否满足开发者需要等。目前学校各工作点均采用PC机作为工作台,其容量、速度能满足系统要求。
根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
2.4经济可行性
主要是对开发教师档案管理系统的经济效益进行评价,一方面是估算开发它的支出费用,其中包括设备购置费、软件开发费、管理和维护费、人员工资和培训费等。另一方面是估算教师档案管理这个软件可能取得的收益中可以用钱来衡量的那部分。并对目前的软件市场进行调查,所做软件是否有很大的销售市场和相当规模的用户群。所做软件的开发成本与客户提出的要求是否可达到双方都满意。并且,分析系统开发是否会对其它产品或利润带来一定影响。经过对上述几个方面的调查研究和分析,我们得出教师档案管理这个软件的使用性非常强,减轻人力成本,在经济角度来说,开发教师档案管理是可行的。
2.5操作可行性
主要是了解教师档案管理的相关人员对开发信息系统是否支持,现有教师档案管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。教师档案管理人员积极支持该系统开发,使新系统能够充分的发挥作用;系统操作简单,易于理解,操作者经过短时间的培训就可以使用教师档案管理系统。
3项目开发计划
3.1编写目的
经过项目的可行性分析,得出项目可进一步进行下去的结论,在软件继续进一步的开发之前首先给出此软件项目计划。
3.2项目背景
项目分析单位在接到项目分析员给出的项目可行性分析报告后,在本系统,即教师档案管理系统开发主管部门的统一下制定用于软件实质开发的软件项目计划,以使软件开发单位理解软件开发要求,进行开发。
3.3项目概述
1、工作内容
让计算机对教师档案进行自动管理,用户可以直接在计算机上实现教师档案的信息管理,并能在一定程度上实现自动化。
2、条件与限制
开发该软件的条件比较简单,以开发单位目前的经济与技术条件已完全具备开发的条件。该系统可在用户要求的期限内完成。
3、产品
1)、程序
该项目因开发时间较短,这里只给出设计思想,具体程序没写。
2)、文档
文档内容包括:
- 封面
(2)目录
(3)中文摘要100字左右;关键词3-5个
(4)系统概述
(5)项目开发计划
(6)需求分析(包含需要的系统流程图、数据流程图、数据字典、E-R图)
(7) 数据库概念结构设计(包含总体软件结构图、总体数据结构)
(8) 数据库逻辑结构设计(对概要设计内容进行详细设计)
(9)系统实现
4、验收标准
软件的验收标准完全由用户提出的软件需求制定,能保证软件的基本符合用户的要求。
3.4项目开发计划
1、任务分解
分三个大的阶段进行开发第一阶段完成本系统的数据流图跟E-R图。第二阶段完成概要设计跟详细设计。第三阶段书写文档。
2、预算
软件资金投入较少,具体预算分配简略。
3、关键问题
各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对于出现的一些小难点总都能得到解决。
3.5项目结构
采用三层结合MVC 1.ui(用户界面层 myweb) 2.YF123(DAL层 数据层)3.YF456(BLL层 业务层) 4,YFModel(实体层)
YFbangzhu类 一个JsHelper类(客户端输出脚本)另一个MsSqlHelper(数据库帮助类)
图3.1项目结构
4需求分析
4.1任务需求分析
该系统主要包括系统登陆模块、老师基本信息模块、课程基本信息模块和论文录入模块等。
系统要实现基本信息录入、修改、查询等功能:
1)信息的输入,老师基本信息、课程信息、论文录入等。
2)信息的修改、删除。
3)根据要求,查询统计符合条件的各类信息。
4.2功能结构图图
图4-1 功能结构图
5数据库概念结构设计
概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
根据教师信息管理数据库设计需求抽象出教师、教师、课程、成绩四个实体,对四个实体做简化处理,默认一门课程仅被一位老师讲授。
(1)一个系部拥有多名教师,一名教师只属于一个系部,所以系部与教师之间是一对多(1:n)的关系;
(2)一位教师可能会选修多门课程,一门课程会被多位教师选修,所以教师与课程之间是多对多(m:n)的关系;
(3)一位教师会有多项成绩(具体指某教师一门课程的分数),一项成绩仅被一位教师拥有,所以教师与成绩是一对多(1:n)的关系;
(4)一个系部拥有多门课程,一门课程只属于一个系部,所以系部与课程的关系是一对多(1:n)的关系;
(5)一门课程拥有多项成绩,一项成绩仅被一门课程拥有,所以课程与成绩的关系是一对多(1:n)的关系;
全局E-R图如图5.1:
图5.1 全局E-R图
6总体设计
6.1实体所对应的关系模式
Teacher(Id,TNum,TPassWord,TName,TSex,TTel,TEmail,TAddress,TDepart,TRemark,TSuShe)
Score(Id,Subjectld,TNum,XueNian,TScore)
TdentAp(TNum,TName,TJi,TYuanyin)
Tdent123(TNum,TName,TByqk,Tqx,TBydapjd,TByhkpjd)
6.2关系模式优化处理
按照数据依赖对关系模式进行逐一分析,并进行极小化处理:
Tdent(Id,TNum,TPassWord,TName,TSex,TTel,TEmail,TAddress,TDepart,TRemark,TSuShe)
Score(Id,Subjectld,TNum,XueNian,TScore)
Depart(Id,DepartName)
Subject(Id,subjectName)
SysLodin(Id,SysName,SysPassWord)
TdentAp(TNum,TName,TJi,TYuanyin)
Tdent123(TNum,TName,TByqk,Tqx,TBydapjd,TByhkpjd)
6.3数据表设计
表6-1 tb教师基本信息表
列名 |
数据类型 |
能否为空 |
简介 |
Id |
int |
NOT NULL |
教师序号 |
TNum |
VarChar(50) |
NOT NULL |
主键,工号 |
TPassWord |
VarChar(50) |
NULL |
登录密码 |
TName |
VarChar(50) |
NULL |
姓名 |
TSex |
VarChar(50) |
NULL |
性别 |
TTel |
VarChar(50) |
NULL |
电话 |
TEmail |
VarChar(50) |
NULL |
邮箱 |
TAddress |
VarChar(50) |
NULL |
家庭住址 |
TDepart |
int |
NULL |
所在系 |
TRemark |
VarChar(100) |
NULL |
特长 |
TSuShe |
VarChar(100 |
NULL |
宿舍号 |
表6-2 tb_Subject课程信息表
列名 |
数据类型 |
能否为空 |
简介 |
Id |
int |
NULL |
序号 |
KCM |
Varchar(50) |
NOT NULL |
课程名 |
Tname |
Varchar(50) |
NOT NULL |
任课老师 |
Xz |
Varchar(50) |
NOT NULL |
课程性质 |
Bjm |
Varchar(50) |
NULL |
班级名 |
Adddata |
Varchar(50) |
NOT NULL |
添加时间 |
Cz |
Varchar(50) |
NOT NULL |
操作 |
表6-3 tb_SysLogin 项目信息表
列名 |
数据类型 |
能否为空 |
简介 |
Id |
int |
NULL |
编号 |
XMM |
Varchar(50) |
NOT NULL |
项目名 |
JFS |
Varchar(50) |
NOT NULL |
经费数 |
XMT |
Varchar(50) |
NOT NULL |
项目图 |
SM |
Varchar(50) |
NOT NULL |
说明 |
TJSJ |
Varchar(50) |
NOT NULL |
添加时间 |
WCFS |
Varchar(50) |
NOT NULL |
完成方式 |
CZ |
Varchar(50) |
NOT NULL |
操作 |
7.编码及实现
7.1部分源码
7.1.1论文(CRUD)数据访问层
// 引入命名空间
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
// 命名空间
namespace YF123
{
/// <summary>
/// 论文数据层
/// </summary>
public class Lunwen
{
/// <summary>
/// 添加论文
/// </summary>
/// <param name="lunwen">论文实体类</param>
/// <returns>添加成功返回true,否则返回false</returns>
public static bool add(YF.Model.Lunwen lunwen)
{
// 定义一个bool类型的变量rest,初始值为false
bool rest = false;
// 定义一个字符串类型的变量sqls,存储SQL语句
string sqls = "insert into t_lunwen (question,more,name,fenlei,adddate) values('" + lunwen.Question + "','" + lunwen.More + "','" + lunwen.Name + "'," + lunwen.Fenlei + ",'" + lunwen.Adddate + "')";
// 调用YFMsSqlHelper类的ExecuteSql方法执行SQL语句,返回受影响的行数
int i = YF.MsSqlHelper.YFMsSqlHelper.ExecuteSql(sqls);
// 如果受影响的行数大于0,则将rest的值设为true
if (i > 0)
{
rest = true;
}
// 返回rest的值
return rest;
}
/// <summary>
/// 获取论文列表
/// </summary>
/// <returns>返回论文列表</returns>
public static List<YF.Model.Lunwen> List()
{
// 先拿一个sql语句
string strsql = "select * from t_lunwen order by id desc";
// 返回一张表
DataTable dt = YF.MsSqlHelper.YFMsSqlHelper.Query(strsql).Tables[0];
// 然后再把datatable转换为list
return DttoList(dt);
}
/// <summary>
/// 将DataTable转换为List
/// </summary>
/// <param name="dt">DataTable</param>
/// <returns>返回List</returns>
private static List<YF.Model.Lunwen> DttoList(DataTable dt)
{
// 先声明一个空的list
List<YF.Model.Lunwen> list = new List<YF.Model.Lunwen>();
// 把databale循环遍历转换为list进而展示给前台
for (int i = 0; i < dt.Rows.Count; i++)
{
// 生命一个空老师然后追加到list中
YF.Model.Lunwen ti = new YF.Model.Lunwen();
// dt是一个表,把每一列数据赋值进行循环,赋值入list.Add(st);
ti.Id = int.Parse(dt.Rows[i]["id"].ToString());
ti.Question = dt.Rows[i]["question"].ToString();
ti.More = dt.Rows[i]["more"].ToString();
ti.Name = dt.Rows[i]["name"].ToString();
ti.Fenlei = int.Parse(dt.Rows[i]["fenlei"].ToString());
ti.Adddate = DateTime.Parse(dt.Rows[i]["adddate"].ToString());
// 将datatable中数据追加到list中
list.Add(ti);
}
// 返回出去给到model层,然后模型层又给到ui层最后展示出来
return list;
}
/// <summary>
/// 删除论文
/// </summary>
/// <param name="id">论文ID</param>
/// <returns>删除成功返回true,否则返回false</returns>
public static bool del(int id)
{
bool rest = false;
string sqlstr = "delete from t_lunwen where Id=" + id + "";
int i = YF.MsSqlHelper.YFMsSqlHelper.ExecuteSql(sqlstr);
if (i > 0)
{
rest = true;
}
return rest;
}
}
}
7.1.2论文(业务逻辑层)
// 引入命名空间
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// 业务类
namespace YF456
{
/// <summary>
/// 论文业务类
/// </summary>
public class Lunwen
{
/// <summary>
/// 添加论文
/// </summary>
/// <param name="lunwen">论文实体类</param>
/// <returns>添加成功返回true,否则返回false</returns>
public static bool add(YF.Model.Lunwen lunwen)
{
// 调用YF123.Lunwen类的add方法添加论文
return YF123.Lunwen.add(lunwen);
}
/// <summary>
/// 获取论文列表
/// </summary>
/// <returns>返回论文列表</returns>
public static List<YF.Model.Lunwen> List()
{
// 调用YF123.Lunwen类的List方法获取论文列表
return YF123.Lunwen.List();
}
/// <summary>
/// 删除论文
/// </summary>
/// <param name="id">论文ID</param>
/// <returns>删除成功返回true,否则返回false</returns>
public static bool del(int id)
{
// 调用YF123.Lunwen类的del方法删除论文
return YF123.Lunwen.del(id);
}
}
}
7.1.3论文(model层)
7.2数据库连接代码及数据操作代码
7.2.1数据库连接代码
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Tdio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
教师信息管理系统
@File name:教师管理
@Author:猪小温
@Backend Development:猪小温
@Front-end Development:猪小温
@Database Design:猪小温
-->
<configuration>
<appSettings/> <!-- 应用程序设置 -->
<connectionStrings>
<!--
数据库连接字符
-->
<add name="DB" connectionString="server=DESKTOP-8E7I217\SQLEXPRESS;database=OnlineTdent;Integrated security = true;"/> <!-- 数据库连接字符串 -->
</connectionStrings>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true" targetFramework="4.0"/> <!-- 编译选项 -->
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/> <!-- 身份验证模式 -->
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> <!-- 页面设置 -->
</system.web>
</configuration>
7.2.2数据库代码
CREATE TABLE [dbo].[tb_SysLogin](
[id] [int] IDENTITY(1,1) NOT NULL,
[SysName] [varchar](50) NULL,
[SysPassWord] [varchar](50) NULL,
CONSTRAINT [PK_tb_SysLogin] PRIMARY KEY CLUSTERED
(
[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
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_SysLogin] ON
INSERT [dbo].[tb_SysLogin] ([id], [SysName], [SysPassWord]) VALUES (1, N'admin', N'admin')
SET IDENTITY_INSERT [dbo].[tb_SysLogin] OFF
/****** Object: Table [dbo].[tb_SubjectInfo] Script Date:12/12021 09:30:56 小康康 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_SubjectInfo](
[id] [int] IDENTITY(1,1) NOT NULL,
[SubjectName] [varchar](50) NULL,
CONSTRAINT [PK_tb_SubjectInfo] PRIMARY KEY CLUSTERED
(
[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
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_SubjectInfo] ON
/****** Object: Table [dbo].[tb_TdentInfo] Script Date: 12/1/2021 小康康 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_TdentInfo](
[id] [int] IDENTITY(19731126,1) NOT NULL,
[TNum] [varchar](50) NULL,
[TPassWord] [varchar](50) NULL,
[TName] [varchar](50) NULL,
[TSex] [varchar](50) NULL,
[TTel] [varchar](50) NULL,
[TEmail] [varchar](50) NULL,
[TAddress] [varchar](50) NULL,
[TDepart] [int] NULL,
[TRemark] [varchar](100) NULL,
[TSuShe] [varchar](100) NULL,
CONSTRAINT [PK_tb_TdentInfo] PRIMARY KEY CLUSTERED
(
[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
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_TdentInfo] ON
SET IDENTITY_INSERT [dbo].[tb_TdentInfo] OFF
/****** Object: Table [dbo].[tb_Score] Script Date: 12/1/2021 09:30:56 小康康 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Score](
[id] [int] IDENTITY(1,1) NOT NULL,
[subjectId] [int] NULL,
[TNum] [varchar](50) NULL,
[XueNian] [varchar](50) NULL,
[TScore] [decimal](18, 2) NULL,
CONSTRAINT [PK_tb_Score] PRIMARY KEY CLUSTERED
(
[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
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_Score] ON
SET IDENTITY_INSERT [dbo].[tb_Score] OFF
CREATE TABLE [dbo].[tb_Tdent123](
[TNum] [varchar](50) NOT NULL,
[TName] [varchar](50) NOT NULL,
[TByqk] [varchar](50) NOT NULL,
[TByqx] [varchar](50) NOT NULL,
[TBydapjd] [varchar](50) NOT NULL,
[TByhkpjd] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tb_TdentAp] Script Date: 2021/12/23 20:48:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_TdentAp](
[TNum] [varchar](50) NOT NULL,
[TName] [varchar](50) NOT NULL,
[TJj] [varchar](6) NOT NULL,
[TYuanyin] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tb_Depart] Script Date: 06/19/2020 09:30:56 小康康******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tb_Depart](
[id] [int] IDENTITY(1,1) NOT NULL,
[DepartName] [varchar](50) NULL,
CONSTRAINT [PK_tb_Depart] PRIMARY KEY CLUSTERED
(
[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
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[tb_Depart] ON
SET IDENTITY_INSERT [dbo].[tb_Depart] OFF
数据操作代码:将数(CRUD)封装为DBHelper类
using System;
using System.Data;//DataSet数据库命名空间
using System.Data.SqlClient;//.NET数据提供程序数据库命名空
using System.Configuration;//数据库连接字符串写在配置文件时要写入这个
/**********************************************
*************教师信息管理系统*******************
***********************************************
* *
* @File name:教师管理 *
* *
* @Author:谢康 *
* *
* @Backend Development:谢康 *
* *
* @Front-end Development: 谢康 *
* *
* @Database Design:谢康 *
**********************************************/
/// <summary>
/// DBHelper 的摘要说明
/// </summary>
#region 5大对象
//ADO.NET组件,建立c#和sql sever之间的纽带
//ADO.NET=.NET数据提供程序+DdtaSet
//1.Connection:负责APP与DB之间的联系;
//2.Command:负责执行SQL命令 增删改
//3.DateReader:负责读取查询结果(Select语句)查
//4.DataAdapter:数据适配器(牵线搭桥)
//5.DataSet:内存中的数据库
#endregion
public class DBHelper
{
#region 连接数据库
public DBHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 获得数据库连接字符串
/// </summary>
/// <returns></returns>
public static string GetConnStr()
{
return ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
}
#endregion
#region 查询
/// <summary>
/// 由sql变量(select语句)得到DataSet学期查询记录集合
/// </summary>
/// <param name="sql">select语句,字符串学期</param>
/// <returns></returns>
public static DataSet GetDataSet(string sql)
{
SqlConnection conn = new SqlConnection(GetConnStr());
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds);
conn.Close();
return ds;
}
#endregion
#region 增加,删除,更改
/// <summary>
/// 执行sql语句,主要是insert、update、delete语句
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static Boolean ExecSql(string sql)
{
SqlConnection conn = new SqlConnection(GetConnStr());
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
conn.Close();
return false;
}
return true;
}
}
#endregion
7.3系统实现界面
功能模块:
(4)添加老师信息
图7.4 添加老师信息
(5)教师信息列表
图7.5 教师信息列表
(6)添加课程信息
图7.6 添加课程信息
(7)课程信息列表
图7.7 课程信息列表
(8)项目添加
图7.8 项目添加
(9)项目信息列表
图7.9 项目信息列表
(10)论文录入
图7.10 论文录入
(11)论文列表
①添加论文采用富文本
通过富文本进行添加论文
图7.11 添加论文采用富文本
②添加项目图采取asp控件
在论文列表直接通过内容的超链接可以直接查看论文
图7.12 添加项目图及查看论文
8.1开发环境
(1)系统结构:B/S(浏览器/服务器)
(2)系统实现开发技术:asp.net,三层框架(结合MVC)
(3)开发语言: C#,html,css
(4数据库 SQL Server 2019
(5)开发平台 vs2019