📄 courseelect.cs
字号:
this.btnDelete.Text = "删课";
this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);
//
// btnView
//
this.btnView.Enabled = false;
this.btnView.Image = ((System.Drawing.Image)(resources.GetObject("btnView.Image")));
this.btnView.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnView.Location = new System.Drawing.Point(112, 160);
this.btnView.Name = "btnView";
this.btnView.TabIndex = 0;
this.btnView.Text = "看课表";
this.btnView.Click += new System.EventHandler(this.btnView_Click);
//
// label5
//
this.label5.Location = new System.Drawing.Point(16, 40);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(56, 16);
this.label5.TabIndex = 1;
this.label5.Text = "课程名称";
//
// txt5
//
this.txt5.Location = new System.Drawing.Point(72, 40);
this.txt5.Name = "txt5";
this.txt5.Size = new System.Drawing.Size(112, 21);
this.txt5.TabIndex = 2;
this.txt5.Text = "";
//
// label6
//
this.label6.Location = new System.Drawing.Point(16, 64);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(56, 16);
this.label6.TabIndex = 1;
this.label6.Text = "课程编号";
//
// txt6
//
this.txt6.Location = new System.Drawing.Point(72, 64);
this.txt6.Name = "txt6";
this.txt6.Size = new System.Drawing.Size(112, 21);
this.txt6.TabIndex = 2;
this.txt6.Text = "";
//
// txt7
//
this.txt7.Location = new System.Drawing.Point(72, 88);
this.txt7.Name = "txt7";
this.txt7.Size = new System.Drawing.Size(112, 21);
this.txt7.TabIndex = 2;
this.txt7.Text = "";
//
// label7
//
this.label7.Location = new System.Drawing.Point(16, 88);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(56, 16);
this.label7.TabIndex = 1;
this.label7.Text = "课序号";
//
// CourseElect
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(696, 509);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.dataGrid1);
this.Controls.Add(this.groupBox1);
this.Name = "CourseElect";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "【学生选课】";
this.Load += new System.EventHandler(this.CourseElect_Load);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.groupBox2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGrid2)).EndInit();
this.groupBox3.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
//----------输入学号后回车,显示学生信息和选课信息-----------
private void txt1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar==13&&txt1.Text.Trim()!="")//输入学号后回车,查询学生信息和选课信息
{
this.electTable.Clear();//先清空选课表
txt2.Clear();
txt3.Clear();
//关闭选课,删课等许可
btnElect.Enabled=false;
btnDelete.Enabled=false;
btnView.Enabled=false;
this.ShowInfo();
}
}
//--------窗体新建时,绑定数据集和读入可选课程信息--------
private void CourseElect_Load(object sender, System.EventArgs e)
{
//绑定dataGrid到学生选课信息上
dataGrid1.DataSource=this.electTable;
//读入可选课程数据 string strConn="workstation id=localhost;Integrated Security=SSPI;database=eisbook;"; SqlConnection cn=new SqlConnection(strConn); cn.Open();
string sql="select a.课序号,a.课程编号,b.课程名称,b.教师,b.开课系别,"
+"a.上课地点,a.上课时间天,a.上课时间节,b.拼音码"
+" from 课程表 a,课程信息 b"
+" where (b.本学期课程='Y')and(a.课程编号=b.课程编号)";
SqlDataAdapter da2=new SqlDataAdapter(sql,cn);
da2.Fill(this.courseTable);//可供选择的课程信息
this.dv=courseTable.DefaultView;
dataGrid2.DataSource=dv;//绑定显示可选课程信息
}
//------显示学生信息和选课信息-----
private void ShowInfo()//
{
string strConn="workstation id=localhost;Integrated Security=SSPI;database=eisbook;"; SqlConnection cn=new SqlConnection(strConn); cn.Open();
SqlCommand cmd=cn.CreateCommand();
cmd.CommandText="select a.姓名,b.班级名称,a.学籍编号 from 学生信息 a,班级信息 b "
+"where(a.班级编号=b.班级编号)and(学号='"+txt1.Text.Trim()+"')";
SqlDataReader dr=cmd.ExecuteReader();
dr.Read();//读入数据
if(!dr.HasRows)//判断学号是否输入正确
{
MessageBox.Show("无此学生,请重新输入学号","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
dr.Close();
return;
}
if(dr.GetValue(2).ToString().Trim()!="1")//判断是否为在籍学生
{
MessageBox.Show("该学生并非在籍学生,不能选课","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
txt2.Text=dr.GetValue(0).ToString().Trim();//姓名
txt3.Text=dr.GetValue(1).ToString().Trim();//班级名称
dr.Close();
//读入选课信息
string sql="select a.学号,a.课序号,b.课程名称,b.教师,"
+"b.开课系别,c.上课时间天,c.上课时间节,c.上课地点"
+" from 选课表 a,课程信息 b,课程表 c"
+" where(a.课序号=c.课序号)and('200400000'+b.课程编号=a.课序号)"
+"and(a.学号='"+txt1.Text.Trim()+"')";
SqlDataAdapter da=new SqlDataAdapter(sql,cn);
da.Fill(this.electTable);//该学生的选课信息
this.studentID=txt1.Text.Trim();//保存获准选课的学生学号
this.stduentName=txt2.Text.Trim();//保存学生姓名
//允许选课,删课
btnElect.Enabled=true;
btnDelete.Enabled=true;
btnView.Enabled=true;
}
//-----------筛选课程-------------
private void btnSearch_Click(object sender, System.EventArgs e)
{
string filter="";
if(txt4.Text.Trim()!="")
{
filter+="拼音码 like '%"+txt4.Text.Trim()+"%' AND ";
}
if(txt5.Text.Trim()!="")
{
filter+="课程名称 like '%"+txt5.Text.Trim()+"%' AND ";
}
if(txt6.Text.Trim()!="")
{
filter+="课程编号='"+txt6.Text.Trim()+"' AND ";
}
if(txt7.Text.Trim()!="")
{
filter+="课序号 like '%"+txt7.Text.Trim()+"%' AND ";
}
if(filter.Length>0)
{
filter=filter.Substring(0,filter.Length-5);
}
dv.RowFilter=filter;
}
//-------------学生选课-----------
private void btnElect_Click(object sender, System.EventArgs e)
{
if(dv.Count==0)//可选课程为空不能选课
{
MessageBox.Show("可选课表为空,无法选课","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
string courseID=dataGrid2[dataGrid2.CurrentCell.RowNumber,0].ToString().Trim();//当前所选的课序号
string courseDay=dataGrid2[dataGrid2.CurrentCell.RowNumber,6].ToString().Trim();//所选课程的上课时间天
string courseSec=dataGrid2[dataGrid2.CurrentCell.RowNumber,7].ToString().Trim();//所选课程的上课时间节
foreach(DataRow aRow in this.electTable.Rows)
{
if(aRow["课序号"].ToString().Trim()==courseID)
{
MessageBox.Show("所选课程已经在课程表中","课程重复",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
if(aRow["上课时间天"].ToString().Trim()==courseDay&&aRow["上课时间节"].ToString().Trim()==courseSec)
{
string msg="所选课程和已选课程:"+aRow["课程名称"].ToString().Trim()+" 上课时间冲突";
MessageBox.Show(msg,"时间冲突",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
}
string strConn="workstation id=localhost;Integrated Security=SSPI;database=eisbook;"; SqlConnection cn=new SqlConnection(strConn); cn.Open();
SqlCommand cmd=cn.CreateCommand();
cmd.CommandText="insert into 选课表([学号],[课序号]) values('"+this.studentID+"','"+courseID+"')";
cmd.ExecuteNonQuery();
//重新读入学生的选课信息
this.electTable.Clear();
string sql="select a.学号,a.课序号,b.课程名称,b.教师,"
+"b.开课系别,c.上课时间天,c.上课时间节,c.上课地点"
+" from 选课表 a,课程信息 b,课程表 c"
+" where(a.课序号=c.课序号)and('200400000'+b.课程编号=a.课序号)"
+"and(a.学号='"+this.studentID+"')";
SqlDataAdapter da=new SqlDataAdapter(sql,cn);
da.Fill(this.electTable);//该学生的选课信息
}
//---------删除原来所选的课程------------
private void btnDelete_Click(object sender, System.EventArgs e)
{
if(this.electTable.Rows.Count==0)
{
return;//无课可删,不作任何动作
}
string deleteID=dataGrid1[dataGrid1.CurrentCell.RowNumber,1].ToString().Trim();//要删除的课序号
string deleteName=dataGrid1[dataGrid1.CurrentCell.RowNumber,2].ToString().Trim();//要删除的课名称
string msg="是否确认删除已选课程:"+deleteName+" ?";
DialogResult result=MessageBox.Show(msg,"删除课程",MessageBoxButtons.OKCancel);
if(result==DialogResult.OK)
{
string strConn="workstation id=localhost;Integrated Security=SSPI;database=eisbook;"; SqlConnection cn=new SqlConnection(strConn); cn.Open();
SqlCommand cmd=cn.CreateCommand();
cmd.CommandText="delete from 选课表 where(学号='"+this.studentID+"')and(课序号='"+deleteID+"')";
cmd.ExecuteNonQuery();
//重新读入学生的选课信息
this.electTable.Clear();
string sql="select a.学号,a.课序号,b.课程名称,b.教师,"
+"b.开课系别,c.上课时间天,c.上课时间节,c.上课地点"
+" from 选课表 a,课程信息 b,课程表 c"
+" where(a.课序号=c.课序号)and('200400000'+b.课程编号=a.课序号)"
+"and(a.学号='"+this.studentID+"')";
SqlDataAdapter da=new SqlDataAdapter(sql,cn);
da.Fill(this.electTable);//该学生的选课信息
}
}
//---------显示当前选课学生的课表------------
private void btnView_Click(object sender, System.EventArgs e)
{
CurriculumSchedule newFrm=new CurriculumSchedule(this.studentID);
newFrm.Text+="学生:"+this.stduentName;
newFrm.ShowDialog();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -