⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 courseelect.cs

📁 由C开发的教务管理系统源码中的排课子系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
			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 + -