📄 classeditfrm.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using MySchoolPrj.Entity;
using MySchoolPrj.DAO;
namespace SchoolManageprj
{
public partial class ClassEditFrm : Form
{
//设置状态
private State state;
public State State
{
get { return state; }
set { state = value; }
}
private ClassInfos cif;
public ClassInfos Cif
{
get { return cif; }
set { cif = value; }
}
public ClassEditFrm()
{
InitializeComponent();
}
//设置界面各元素
public void setForm()
{
txtClassName.ReadOnly = true; //班级名称为只读
//添加校区下拉框的值
cmbSchoolName.Items.AddRange(new string[] { "交大校区","省图书馆校区","双鱼校区"});
//设置下拉风格
cmbSchoolName.DropDownStyle = ComboBoxStyle.DropDownList;
//默认选项
cmbSchoolName.SelectedIndex = 1;
//默认按钮选项
rdbtnFirstQ.Checked = true;
//数据库连接
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = DBHelper.con;
string sql = "select * from teacher";
cmd.CommandText = sql;
DBHelper.con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
string str = reader["teacherName"].ToString();
cmbClassMaster.Items.Add(str); //从数据库中提取教师姓名
}
reader.Close();
DBHelper.con.Close(); //关闭数据库
//判断教师信息是否为空
//如果有信息设置下拉框默认选项和下拉框风格
if (cmbClassMaster.Items.Count >0)
cmbClassMaster.SelectedIndex = 0;
cmbClassMaster.DropDownStyle = ComboBoxStyle.DropDownList;
}
//接收修改数据
public void getUpdataData()
{
string temp = cif.ClassId.Substring(0, 2);
//判断选择的校区
switch (temp)
{
case "AT":
cmbSchoolName.SelectedIndex = 1;
break;
case "AJ":
cmbSchoolName.SelectedIndex = 0;
break;
case "AQ":
cmbSchoolName.SelectedIndex = 2;
break;
}
cmbSchoolName.Enabled = false;
dtpStarDate.Value = Convert.ToDateTime(cif.StarDate);
dtpStarDate.Enabled = false;
dtpEndDate.Value = Convert.ToDateTime(cif.EndDate);
txtClassCount.Text = cif.ClassCount.ToString();
temp = cif.ClassId.Substring(2,1);
switch (temp)
{
case "1":
rdbtnFirstQ.Checked = true;
break;
case "2":
rdbtnScondQ.Checked = true;
break;
case "3":
rdbtnThirdQ.Checked = true;
break;
}
//设置单选按钮的默认值
rdbtnFirstQ.Enabled = false;
rdbtnScondQ.Enabled = false;
rdbtnThirdQ.Enabled = false;
cmbClassMaster.SelectedItem = cif.TeacherName;
}
//设置界面初始化信息
private void ClassEditFrm_Load(object sender, EventArgs e)
{
//设置班级初始值
txtClassCount.Text = "1";
txtClassCount.Text = "";
setForm();
//判断添加信息还是修改信息
if (state == State.dsAdd)
{
dtpStarDate.MaxDate = DateTime.Now;
txtClassName.Text = "";
setClassName();
}
else
{
dtpStarDate.MaxDate = DateTime.Now;
getUpdataData();
txtClassName.Text = "";
txtClassName.Text = cif.ClassId;
}
}
//设置班级号信息
public void setClassName()
{
if (cmbSchoolName.SelectedIndex == 0)
txtClassName.Text += "AJ";
else if (cmbSchoolName.SelectedIndex == 1)
txtClassName.Text += "AT";
else
txtClassName.Text += "AQ";
if (rdbtnFirstQ.Checked)
txtClassName.Text += 1 + "Q";
else if (rdbtnScondQ.Checked)
txtClassName.Text += 2 + "Q";
else
txtClassName.Text += 3 + "Q";
if (dtpStarDate.Value.Year < 2010 && dtpStarDate.Value.Year > 1999)
txtClassName.Text += dtpStarDate.Value.Year.ToString().Substring(3, 1);
else if (dtpStarDate.Value.Year >= 2010)
txtClassName.Text += dtpStarDate.Value.Year.ToString().Substring(2, 2);
if (dtpStarDate.Value.Month < 10)
txtClassName.Text += "0" + dtpStarDate.Value.Month.ToString();
else
txtClassName.Text += dtpStarDate.Value.Month.ToString();
txtClassName.Text += selectedClassName();
}
//查找已有班级号来确定新班级号
public string selectedClassName()
{
string lastNo="1";
//数据库连接
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = DBHelper.con;
string sql = "select classId from classInfo";
cmd.CommandText = sql;
DBHelper.con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string temp = dr[0].ToString();
if (dtpStarDate.Value.Year < 2010)
{
string str = temp.Substring(0, 7);
if (str != txtClassName.Text)
lastNo = "1";
else
lastNo = (Convert.ToInt32(temp.Substring(7))+1).ToString();
}
else
{
string str = temp.Substring(0, 8);
if (str != txtClassName.Text)
lastNo = "1";
else
lastNo = (Convert.ToInt32(temp.Substring(8))+1).ToString();
}
}
dr.Close();
DBHelper.con.Close();
return lastNo;
}
//设置班级名称初始值
private void cmbSchoolName_SelectedIndexChanged(object sender, EventArgs e)
{
txtClassName.Text = "";
setClassName();
}
//入学时间
private void dtpStarDate_ValueChanged(object sender, EventArgs e)
{
txtClassName.Text = "";
setClassName();
}
//选择第一学期
private void rdbtnFirstQ_CheckedChanged(object sender, EventArgs e)
{
txtClassName.Text = "";
setClassName();
}
//选择第二学期
private void rdbtnScondQ_CheckedChanged(object sender, EventArgs e)
{
txtClassName.Text = "";
setClassName();
}
//选择第三学期
private void rdbtnThirdQ_CheckedChanged(object sender, EventArgs e)
{
txtClassName.Text = "";
setClassName();
}
//设置班级人数只能为数字
private void txtClassCount_KeyPress(object sender, KeyPressEventArgs e)
{
char ch = e.KeyChar;
if ((Keys)ch != Keys.Back)
{
if (ch < '0' || ch > '9')
e.Handled = true;
}
}
//关闭窗体
private void btnConcel_Click(object sender, EventArgs e)
{
this.Close();
}
//获取界面数据
public ClassInfos getInfo()
{
ClassInfos clif = new ClassInfos();
clif.ClassId = txtClassName.Text;
clif.ClassCount = Convert.ToInt32(txtClassCount.Text);
clif.TeacherName = cmbClassMaster.SelectedItem.ToString();
clif.StarDate = dtpStarDate.Value.ToLongDateString();
clif.EndDate = dtpEndDate.Value.ToLongDateString();
clif.Meno = txtMeno.Text;
return clif;
}
//获取教师号
public string getTeacherId()
{
string teacherid;
//数据库连接
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = DBHelper.con;
string sql = "select teacherId from teacher where teacherName='" + cmbClassMaster.SelectedItem.ToString() + "'";
cmd.CommandText = sql;
DBHelper.con.Open();
teacherid =(string) cmd.ExecuteScalar();
DBHelper.con.Close();
return teacherid;
}
//将班级数据提交到数据库
public void addClasses(ClassInfos c)
{
string teacherid = getTeacherId();
try
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = DBHelper.con;
string sql = string.Format("insert into classInfo values('{0}','{1}','{2}',{3},'{4}','{5}')", c.ClassId, teacherid, c.StarDate, c.ClassCount, c.EndDate, c.Meno);
cmd.CommandText = sql;
DBHelper.con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception)
{
MessageBox.Show("对不起,已注册过此班级,请重新输入","提示");
}
finally
{
DBHelper.con.Close();
}
}
//将修改后的班级数据提交到数据库
public void updataClasses(ClassInfos c)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = DBHelper.con;
string sql = string.Format("update classInfo set teacherId='{1}',studentcount={2},enddate='{3}'," +
"memo='{4}' where classId='{0}'", c.ClassId, getTeacherId(), c.ClassCount, c.EndDate, c.Meno);
cmd.CommandText = sql;
DBHelper.con.Open();
cmd.ExecuteNonQuery();
DBHelper.con.Close();
}
//班级人数不能为空
public bool validClassCountIsNull() {
//判断班级人数是否为空
if (txtClassCount.Text == "")
{
MessageBox.Show("班级人数不能为空!");
btnOk.Enabled = false;
return false;
}
//判断班主任信息是否为空
else if (cmbClassMaster.Items.Count < 1) {
MessageBox.Show("班主任不能为空!");
btnOk.Enabled = false;
return false;
}
else
{
btnOk.Enabled = true;
return true;
}
}
//提交数据
private void btnOk_Click(object sender, EventArgs e)
{
//添加信息
if (state == State.dsAdd)
{
if (validClassCountIsNull())
{
if (Convert.ToInt32(txtClassCount.Text) < getStudentCount())
{
MessageBox.Show("班级人数不能少于班级实际人数!");
txtClassCount.Text = "";
}
else
{
addClasses(getInfo());
}
}
else
return;
}
//修改信息
else
{
if (validClassCountIsNull())
{
if (Convert.ToInt32(txtClassCount.Text) < getStudentCount())
{
MessageBox.Show("班级人数不能少于班级实际人数!");
txtClassCount.Text = "";
}
else
{
updataClasses(getInfo());
}
}
else
return;
}
//关闭窗体
this.Close();
}
//获取学生人数
public int getStudentCount() {
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = DBHelper.con;
string sql = "select count(*) from student where classid='" + txtClassName.Text + "'";
cmd.CommandText = sql;
DBHelper.con.Open();
int count = (int)cmd.ExecuteScalar();
DBHelper.con.Close();
return count;
}
//班级人数
private void txtClassCount_TextChanged(object sender, EventArgs e)
{
//如果班级人数为空
if (txtClassCount.Text == "")
btnOk.Enabled = false;
else
btnOk.Enabled = true;
}
//结课时间
private void dtpEndDate_ValueChanged(object sender, EventArgs e)
{
dtpEndDate.MinDate = DateTime.Now;
dtpStarDate.MaxDate = DateTime.Now;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -