?? 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 + -