asp.net 根据老师姓名查询课表 ,怎样设计课表。跪求帮助
我要设计一个课程表,根据星期以及节次还有老师姓名选择出该老师的课程表,显示在相应的单元格中(显示课程名称、班级、上课地点),我用的是数据表的拼接做的,先判断节次,然后用case语句判断是是星期几,用sbtable.Append拼接。第一节课有两条记录: 星期一 细胞生物学实验 0704 基因工程实验室
星期五 细胞生物学实验 0807 有机化学
我的后台代码如下:
public void show()
{ //根据dropdownlist(学年、学期、教师姓名)的选择,依次选出星期、节次、课程名称、班级名称、上课地点
string strsel = "select a.Week,a.ClassNumber,d.CourseName,c.ClassName,b.RoomName from Tm_LabCourse a,Tm_Lab b,Tm_Class c,Tm_Course d " + "where a.CourseID=d.ID and a.ClassID=c.ID and a.RoomNum=b.RoomNum and a.Term='" + drp_year.SelectedValue + "' and a.TermNum='" + Convert.ToInt32(drp_term.SelectedValue) + "' and a.TeacherID='" + drp_tname.SelectedValue + "'";
SqlDataReader dr = DbHelperSQL.ExecuteReader(strsel);
StringBuilder sbTable = new StringBuilder();//表格的拼接
sbTable.Append("<TABLE BORDER=\"1\" WIDTH=\"100%\" BORDERCOLORDARK=\"white\" BORDERCOLORLIGHT=\"silver\" STYLE=\"z-index: 104\" CELLPADDING=\"1\" CELLSPACING=\"0\">");
sbTable.Append("<TR>");
//--------------------固定的部分------------------
sbTable.Append("<td colspan =\"2\" align=\"left\">时间</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期一</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期二</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期三</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期四</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期五</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期六</td>");
sbTable.Append("<TD align=\"center\" style=\"width :120px\">星期日</td>");
sbTable.Append("</TR>");
//以第一节为例
sbTable.Append("<TR>");
sbTable.Append("<TD rowspan =\"4\">上<br />午</TD>");
sbTable.Append("<TD style =\"width:50px\">第<br>一<br>节</TD>");
int count = 0;
if (dr.HasRows)//dr是否为多行
{
while (dr.Read())对dr的循环读
{
string strc = dr["ClassNumber"].ToString().Trim();
string[] arr = strc.Split('-');
if (arr[0] == "1")
{
switch (dr["Week"].ToString().Trim())
{
问题在这里:一般应该是星期一直接拼接一列,星期二拼接两列,依次类推,但是如果第一条记录中星期一有课,第二条记录星期二有课,实现拼接第二条记录时拼接两列,这条记录直接出现在了星期三的位置,因为星期一得位置已经放了记录。 case "星期一":
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>");
break;
case "星期二":
sbTable.Append("<td>"); sbTable.Append("</td>");
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>");
break;
case "星期三":
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>");
break;
case "星期四":
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>");
break;
case "星期五":
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>"); sbTable.Append("<td>无"); sbTable.Append("</td>"); sbTable.Append("<td>无"); sbTable.Append("</td>");
break;
case "星期六":
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>"); sbTable.Append("<td>无"); sbTable.Append("</td>");
break;
case "星期日":
sbTable.Append("<td>");
sbTable.Append(dr["CourseName"].ToString() + "<br>" + dr["ClassName"].ToString() + "<br>" + dr["RoomName"].ToString());
sbTable.Append("</td>"); sbTable.Append("<td>无"); sbTable.Append("</td>");
break;
}
}
}
}
sbTable.Append("</TR>"); --------------------编程问答-------------------- 重写逻辑,使用gridview实现,列显示星期一 。。。星期五 --------------------编程问答-------------------- 太乱了。。。 --------------------编程问答-------------------- 不乱啊,我写的很清楚啊,用gridview不好,不能实现列的表头,比如说上午、第一节等等
补充:.NET技术 , ASP.NET