# C-Sharp-Final-Test
## 第一章 介绍
C#的期末大作业,前端使用C# winform窗体开发,后端使用C#,数据库使用Sql Server。
## 第二章 登录窗口
### 1.1 **组件**
用户名:TextBox1
密码:TextBox2
验证码:TextBox3、PictureBox
生成验证码利用Utils文件夹中Utils类里面的CheckCode类
登录身份:RadioBox1、RadioBox2
记住密码:CheckBox1
### 1.2 **事件**
0.加载页面完毕:
①生成验证码。
②登录身份默认教师。
③从C:\users\{this.user}\userInfo.msg文件中找到上次保存的用户名和密码并填充。
④连接数据库。
1.点击验证码:
①更换验证码。
2.点击重置:
①清空所有TextBox。
②更换验证码。
3.点击登录:
〇判断用户名、密码、验证码是否为空。
①验证验证码是否输入正确。
②从数据库中搜索账户和密码,查询语句为
```sql
SELECT DISTINCT * FROM usertable WHERE logname='yztyzt' AND yhlx='teacher'
```
并校验和表单信息是否一致,如果一致,进行下一步;如果不一致,提示用户名或密码错误并更换验证码;如果数据库查询无结果,则提示用户不存在。
③如果勾选记住密码,则在(C:\users\{this.user}\userInfo.m)文件中更改已有的用户名和密码。
④如果登录身份是教师,则从teachers表中找到该教师的姓名
```sql
SELECT teachername FROM teachers WHERE logname='yztyzt'
```
⑤进入对应身份对应的窗口。
## 第三章 教师窗口
### 3.1 功能介绍
点名、查询点名记录
#### 3.1.1 点名
选中课程和人数(人数为0则点全班的名)之后
1.从数据库中找到全班的人
```sql
SELECT * FROM students WHERE kcm='Csharp' AND teachr_name='周树功'
```
2.调用Utils类里的GetRandomStudents方法,得到对应人数的学生
3.对于每一个学生,都会出现一个提示框,选择是否出勤
4.选择是否出勤后,将这一行数据上传到数据库中
5.选择完所有学生后,在dataGridView里展示数据
#### 3.1.2 查询点名记录:搜索选中科目的点名记录
1.加载完页面后,先加载所有的课程名信息并展示在comboBox1里
```sql
SELECT DISTINCT kcm FROM students
```
2.在comboBox1中选中某个科目后,从数据库中查询对应点名的日期(精确到日)并展示在comboBox2中
```sql
SELECT DISTINCT sj FROM dmb WHERE kcm='Csharp'
```
3.如果有筛选条件,则进行SQL字符串拼接,接下来在数据库中查询并展示在datagridview1中
```C#
string shaixuanSql = "";
if (shaixuan != "")
{
switch (shaixuan)
{
case "姓名":
shaixuanSql = $" AND name='{shaixuanText}'";
break;
case "学号":
shaixuanSql = $" AND xh='{shaixuanText}'";
break;
case "已出勤":
shaixuanSql = $" AND sfqq='是'";
break;
case "未出勤":
shaixuanSql = $" AND sfqq='否'";
break;
}
}
string course = comboBox1.Text;
string query = $"SELECT * FROM dmb WHERE kcm='{course}' AND sj LIKE '{comboBox2.Text}%'" + shaixuanSql;
```
④展示数据后如果需要修改,则双击需要修改的行,触发CellMouseDoubleClick事件,show出修改的dialog
⑤修改完毕并提交后,刷新datagridview1中的数据
## 第四章 管理员窗口
### 4.1 功能介绍
对学生增删改查,添加教师,修改教师对应的课程,查看教师点名情况。
#### 4.1.1 添加学生
单击导入学生按钮之后会弹出fileSelect框,这时可以选择对应教务系统导出的Excel转为csv后的文件(**注意!要在最后一列加上课程名!!!**)
读取csv并展示在datagridview中
```C# string filePath = "";
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = "c:\\";
ofd.Filter = "Script files (*.csv)|*.csv";
//ofd.RestoreDirectory = true;
ofd.Title = ("选择学生表");
```
**其中读取CSV采用了外部引用的包SeeSharpTools **
```C#
data = CsvHandler.Read<string>(filePath, (long)0, 0, -1, -1, Encoding.UTF8);
```
点击添加学生后,将使用下面的SQL语句将学生列表上传至数据库,选择学号、姓名、班级、课程名
```C#
string s = $"INSERT INTO students (xh,name,bj,kcm) VALUES ('{dt.Rows[i]["学号"]}','{dt.Rows[i]["姓名"]}','{dt.Rows[i]["班级"]}','{dt.Rows[i][dt.Columns.Count - 1]}')";
```
#### 4.1.2 删除、修改、查询学生:
先对应查询学生的信息,sql语句采用拼接形式,查询后展现在页面上
```csharp
string s = "SELECT * FROM students WHERE";
if (textBox1.Text != "")
{
id = textBox1.Text;
s += $" xh='{id}' AND";
}
if (textBox2.Text != "")
{
name = textBox2.Text;
s += $" name='{name}' AND";
}
if (textBox3.Text != "")
{
bj = textBox3.Text;
s += $" bj='{bj}' AND";
}
if (textBox4.Text != "")
{
kcm = textBox4.Text;
s += $" kcm='{kcm}' AND";
}
s = s.Substring(0, s.Length - 3);
```
删除修改功能的SQL语句在下面呈现
**删除学生**
```C#
string s1 = $"delete students where xh='{row[1]}' AND name='{row[2]}' AND " +
$"bj='{row[3]}' AND kcm='{row[4]}'";
```
**修改学生**
```C#
string s = $"UPDATE students SET name='{textBox2.Text}',bj='{textBox3.Text}' WHERE xh='{textBox1.Text}' AND kcm='{textBox4.Text}'";
```
#### 4.1.3 添加教师
写入信息后首先查询有没有重复账号,如果没有添加到teachers数据库和usertable数据库,采用以下SQL语句
```C#
string query = $"SELECT count(*) FROM usertable WHERE logname='{textBox2.Text}' AND yhlx='teacher'";
string s1 = $"INSERT INTO teachers (teachername,logname,kcm,zgh) VALUES('{textBox1.Text}','{textBox2.Text}','{course}','{textBox5.Text}')";
string s2 = $"INSERT INTO usertable (logname,password,yhlx) VALUES('{textBox2.Text}','{textBox3.Text}','teacher')";
```
#### 4.1.4 查看教师点名情况
首先通过数据库查找所有教师和对应的课程
```sql
SELECT teachername,kcm FROM teachers
```
选择某个老师后,在comboBox2里面显示他的课程。
点击查询,则查询comboBox2中课程对应学生的点名情况
```C#
string s = $"SELECT xh,name,sj,sfqq,kcm,bz FROM dmb WHERE kcm='{comboBox2.Text}'";
```
#### 4.1.5 修改教师课程
首先通过职工号选择教师,并显示其对应的课程名
```C#
string query = $"SELECT kcm FROM teachers WHERE zgh='{textBox1.Text}'";
```
修改信息完成后,将信息update到数据库
```C#
string s = $"UPDATE teachers SET kcm='{textBox3.Text}' WHERE zgh='{textBox1.Text}'";
```
## 第五章 Utils命名空间介绍
### 5.1 _Sql类
该类中封装了sql中连接数据库、查询、增删改功能
#### 5.1.1 连接数据库
```C#
public bool SqlConnect()
{
string constring = "Data Source=114.55.89.13;Initial Catalog=test01; User ID=sa;Pwd=198312Bpr@7;Integrated Security=false;";
SqlConnection conn = new SqlConnection(constring);
try
{
conn.Open();
this.conn = conn;
return true;
}
catch (Exception ex)
{
return false;
}
}
```
#### 5.1.2 查询
```C#
public DataSet SqlFind(string sql)
{
SqlDataAdapter reader = new SqlDataAdapter(sql, conn);
DataSet data = new DataSet();
reader.Fill(data);
return data;
}
```
#### 5.1.3 增删改
```C#
public bool ManageData(string sql)
{
SqlCommand cmd = new SqlCommand(sql, conn);
int num = cmd.ExecuteNonQuery();
return num > 0;
}
```
### 5.2 CheckCode类
是生成验证码的类,分为生成验证码字符和生成验证码图片的方法,在使用到该类时可以进一步封装为CreateCode(int)方法
```C#
void CreateCode()
{
string code = CheckCode.CreateRandomCode(CODECOUNT);
this.code = code;
Image image = CheckCode.CreateImage(code);
pictureBox1.Image = image;
}
```
### 5.3 Utils类
#### 5.3.1 保存和读取�
没有合适的资源?快使用搜索试试~ 我知道了~
C#的期末大作业C#学生信息管理系统.zip

共67个文件
cs:35个
resx:13个
suo:2个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 130 浏览量
2022-11-27
17:01:21
上传
评论 2
收藏 698KB ZIP 举报
温馨提示
C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系统.zip C#的期末大作业C#学生信息管理系
资源推荐
资源详情
资源评论




























收起资源包目录


















































































共 67 条
- 1
资源评论


程序员张小妍
- 粉丝: 2w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
