如图,我想实现如图的显示效果。但是一直苦于表结构的设计。
求大神解救。以及后来查询的sql语句该怎样写,才能实现如图的显示效果。
十分感谢。

解决方案 »

  1.   


    [curriculumId] [bigint] IDENTITY(1,1) NOT NULL,
    [grade] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [collegeId] [int] NOT NULL,
    [collegeCode] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
    [collegeName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [professionalId] [int] NOT NULL,
    [professionalName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [courseId] [int] NOT NULL,
    [courseName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [courseHours] [int] NULL,
    [courseType1] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [courseType2] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    [classId] [int] NOT NULL,
    [className] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [teacherId] [int] NOT NULL,
    [teacherName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [classRoomId] [int] NULL,
    [classRoomName] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [classRoomNo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [week] [int] NOT NULL,
    [time] [int] NOT NULL,
    [festival] [int] NOT NULL,
      

  2.   

    建表应该不是重点,关键是显示。可以用DataGrid控件,复合表头,合并单元格!
      

  3.   

    建议 建立两个表 一个 hrShiftM, 一个 hrShiftDhrShiftM 就是你提示的图一样建立,hrShiftD 是在你保存的时候, 将 每个人保存成 每人每星期几什么部分打勾 的单条记录形式。
    以方便后续 联合表使用。。体会一下就明白了, 这跟 人事排班 一样的形式。
      

  4.   

    下面是我的最终解决方案,和大家分享下。
    表结构按照图的形式建立的。一开始打算用行转列,但最终没有实现。
    显示是用Repeater做的。<asp:Repeater ID="Repeater1" runat="server">
       <HeaderTemplate>
         <table style="width: 100%; text-align: center; height: 102px; font-size: small;" align="center" 
                rules="all">
                <tr>
                    <td align="center" rowspan="2" style="width: 48px">
                        姓名</td>
                    <td colspan="3">
                        星期一</td>
                    <td colspan="3">
                        星期二</td>
                    <td colspan="3">
                        星期三</td>
                    <td colspan="3">
                        星期四</td>
                    <td colspan="3">
                        星期五</td>
                    <td colspan="3">
                        星期六</td>
                    <td colspan="3">
                        星期日</td>
                </tr>
                <tr>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                    <td>
                        上午</td>
                    <td>
                        下午</td>
                    <td>
                        晚上</td>
                </tr>
       </HeaderTemplate>
       <ItemTemplate>
         <tr>
           <td><asp:Label runat="server" ID="Label1" Text='<%# Eval("MemberName") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label2" Text='<%# Eval("MonM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label3" Text='<%# Eval("MonA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label4" Text='<%# Eval("MonN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label5" Text='<%# Eval("TueM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label6" Text='<%# Eval("TueA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label7" Text='<%# Eval("TueN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label8" Text='<%# Eval("WenM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label9" Text='<%# Eval("WenA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label10" Text='<%# Eval("WenN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label11" Text='<%# Eval("ThurM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label12" Text='<%# Eval("ThurA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label13" Text='<%# Eval("ThurN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label14" Text='<%# Eval("FriM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label15" Text='<%# Eval("FriA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label16" Text='<%# Eval("FriN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label17" Text='<%# Eval("SatM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label18" Text='<%# Eval("SatA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label19" Text='<%# Eval("SatN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label20" Text='<%# Eval("SunM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label21" Text='<%# Eval("SunA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label22" Text='<%# Eval("SunN") %>'></asp:Label></td>
         </tr>
       </ItemTemplate>
       <AlternatingItemTemplate>
         <tr>
            <td><asp:Label runat="server" ID="Label1" Text='<%# Eval("MemberName") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label2" Text='<%# Eval("MonM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label3" Text='<%# Eval("MonA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label4" Text='<%# Eval("MonN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label5" Text='<%# Eval("TueM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label6" Text='<%# Eval("TueA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label7" Text='<%# Eval("TueN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label8" Text='<%# Eval("WenM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label9" Text='<%# Eval("WenA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label10" Text='<%# Eval("WenN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label11" Text='<%# Eval("ThurM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label12" Text='<%# Eval("ThurA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label13" Text='<%# Eval("ThurN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label14" Text='<%# Eval("FriM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label15" Text='<%# Eval("FriA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label16" Text='<%# Eval("FriN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label17" Text='<%# Eval("SatM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label18" Text='<%# Eval("SatA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label19" Text='<%# Eval("SatN") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label20" Text='<%# Eval("SunM") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label21" Text='<%# Eval("SunA") %>'></asp:Label></td>
           <td><asp:Label runat="server" ID="Label22" Text='<%# Eval("SunN") %>'></asp:Label></td>
         </tr>
       </AlternatingItemTemplate>
       <FooterTemplate>
       <tr><td colspan="22"><div align="left" style="font-family: 黑体; font-size: small">备注:符号“○”表示有课</div></td></tr>
         </table>
       </FooterTemplate>
     </asp:Repeater>