现在做教学管理系统,需要对教学情况进行统计,培训老师一个比较bt的需求,大家帮忙提示一下思路,一定是C#的,其它的看不懂要求如下:某老师教一群学生A课程,该课程共分为a,b,c三个单元,每个单元分1,2,3次课上完,每次上完课,该老师需要登记如下信息:教师姓名,学生姓名,上课时间,上课内容,对学生的该次课程定级别打分(优,良,差)。
那么教务主任通过查询“学生姓名”关键字来一目了然的了解,该生在该整个课程中的学习情况(包括每次课由哪个老师教?什么时间?成绩多少?)我考虑,这个涉及到了多行列的datagrid的数据显示,请做过的朋友和高手提供一下这方面的资料和其它的思路!!多谢,分数不够再专门开帖!
那么教务主任通过查询“学生姓名”关键字来一目了然的了解,该生在该整个课程中的学习情况(包括每次课由哪个老师教?什么时间?成绩多少?)我考虑,这个涉及到了多行列的datagrid的数据显示,请做过的朋友和高手提供一下这方面的资料和其它的思路!!多谢,分数不够再专门开帖!
解决方案 »
- asp.net 权限问题。高手帮忙
- asp.net如何重启网站?
- 请教:如何自动填写并提交表单?
- 请问做网站后台开发的前景如何阿?我刚刚工作,对现状很迷茫。。。希望各位前辈给点指引。。。晚辈将感激不尽。。。
- 这样的多表连接查询的SQL语句应该怎么写呢??
- Compiler Error Message: BC30456: 'Culture' is not a member of 'ASP.personalattendanceview_aspx'.
- 请问如何给FooterTemplate中的DropDownList绑定数据
- 网页之间传递参数的问题
- 关于用 Virtual PC 模拟网络开发环境!请关注。。。
- this.DataGrid1.Items[1].Cells[2].Text为什么取不到值??
- 怎样在ASP。NET中做音乐播放程序?
- 验证码 更换的问题
用学号吧,每次教务主任查找是只要把对应的信息SOU出来不就可以了吗
这不就是一个SQL就可以解决了嘛。
//樓主設計表時,建議用“學號”來做主鍵。姓名可能出現重復,且有先天缺陷
//該查詢可以通過GridView嵌套來解決。但由於GridView或DataGrid格式太單一,可以考慮用Repeater嵌套。具體的代碼,樓主可以自己搜搜。
//樓主設計表時,建議用“學號”來做主鍵。姓名可能出現重復,且有先天缺陷
//該查詢可以通過GridView嵌套來解決。但由於GridView或DataGrid格式太單一,可以考慮用Repeater嵌套。具體的代碼,樓主可以自己搜搜。
//樓主設計表時,建議用“學號”來做主鍵。姓名可能出現重復,且有先天缺陷
//該查詢可以通過GridView嵌套來解決。但由於GridView或DataGrid格式太單一,可以考慮用Repeater嵌套。具體的代碼,樓主可以自己搜搜。
一个五个表,3NF规范了的数据库。用视图来查询数据,内置了一个搜索功能
插入编辑删除 三个操作,至少要求每个表都要三个存储过程了。15累死去,自己创建向导create吧先贴图了
这个是5张表的视图
http://www.10kuai.cn/csdn/view1.gif
这个是5张表的关系图
http://www.10kuai.cn/csdn/guanxitu1.gif
这是查询后的结果,因为只是测试用数据不是完整的了。前面看似重复其实是满足“该生在该整个课程中的学习情况(包括每次课由哪个老师教?什么时间?成绩多少?)” 最后面的成绩是同一个成绩,数据上没有冗余
http://www.10kuai.cn/csdn/list1.gif
最后一张图,查询“王别石”得到的精确的结果,这个结果我认为切题恰到好处。如果不是这样的,你可以自己重新设计数据库了
http://www.10kuai.cn/csdn/query1.gif这里是我写的源码
http://www.10kuai.cn/csdn/course.rar
里面包含了数据库文件 mdf 和log 文件。
先在sqlserver里面创建course数据库
再把sqlserver停掉,然后用压缩包里面的覆盖就OK了,呵呵。我现在机器是开着的,这里可以查看示例,访问不了就说明关机了
http://hero4u.vicp.net/study/course/index.aspx
http://hero4u.vicp.net/study/course/insertStudent.aspx
1.显示: 采用gridview内有table模板,有三列(单元),每列有三小列(每小节).数据采用
直接 绑定便可.
2. 数据表结构(课时,教师,时间,内容,学号,姓名,成绩)其中课时值要限定(A1-C3),因根据其值进行分解
3. 数据结果查询视图应该为(学号,A1,A2,A3,B1,B2,B3,C1,C2,C3)其中 A1内容为当前学生的成绩,上课教师及时间等详细信息.即将几个字段内容合并成一个字段A1中,便于绑定好显示
下面是部分代码(已调试)<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Search.." OnClick="Button1_Click" /><br />
<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server" Height="195px" Width="700px" CellPadding="4" ForeColor="#333333" GridLines="None">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<table width="700px"><tr><td colspan="9">课时查询</td></tr>
<tr>
<td colspan="4">A单元</td>
<td colspan="3">B单元</td>
<td colspan="3">C单元</td>
</tr>
<tr>
<td>学生</td>
<td>A1</td>
<td>A2</td>
<td>A3</td>
<td>B1</td>
<td>B2</td>
<td>B3</td>
<td>C1</td>
<td>C2</td>
<td>C3</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"Stu_no") %> </td>
<td><%# DataBinder.Eval(Container.DataItem,"A1") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"A2") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"A3") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"B1") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"B2") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"B3") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"C1") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"C2") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"C3") %></td>
</tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</div>
</form>
数据表:
if exists(
Select name from sysobjects where name=N'Study' and type='U'
)
drop table StudyCreate Table Study(course nvarchar(2), stu_no nvarchar(10),stu_Name nvarchar(10),tehname nvarchar(10),rec_cr Datetime,Content nvarchar(100),source nvarchar(1))Insert study values('A1','001','张三','李老师 ',getdate(),'','良')
Insert study values('A2','001','张三','张老师 ',getdate(),'','良')
Insert study values('A3','001','张三','济老师 ',getdate(),'','良')
Insert study values('B1','001','张三','李老师 ',getdate(),'','优')
Insert study values('B2','001','张三','张老师 ',getdate(),'','良')
Insert study values('B3','001','张三','李老师 ',getdate(),'','良')
Insert study values('C1','001','张三','李老师 ',getdate(),'','差')
Insert study values('C2','001','张三','张老师 ',getdate(),'','良')
Insert study values('C3','001','张三','李老师 ',getdate(),'','优')Insert study values('A1','002','李四','李老师 ',GetDATE(),'','优')--Select * From study/* 以下是通过 case course 来进行查询,但是要进行分组. 本题是字符串,未成功。若数字则可
Select
stu_no,
Case course when 'A1' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as A1,
Case course when 'A2' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as A2,
Case course when 'A3' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as A3,
Case course when 'B1' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as B1,
Case course when 'B2' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as B2,
Case course when 'B3' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as B3,
Case course when 'C1' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as C1,
Case course when 'C2' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as C2,
Case course when 'C3' then '成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) End as C3
From study
*//* 以下是通过分解子表(共9次),左连接方式来连接成一个总查询
Select AA1.stu_no,A1, A2,A3,B1,B2,B3,C1,C2,C3
From (
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS A1
From study
Where course='A1'
)as AA1Left join(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS A2
From study
Where course='A2'
)as AA2
ON (AA1.stu_no=AA2.stu_no) LEFT JOIN
(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS A3
From study
Where course='A3'
)as AA3
ON (AA1.stu_no=AA3.stu_no)LEFT JOIN(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS B1
From study
Where course='B1'
)as AB1
ON (AA1.stu_no=AB1.stu_no)LEFT JOin
(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS B2
From study
Where course='B2'
)as AB2
ON (AA1.stu_no=AB2.stu_no) left join
(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS B3
From study
Where course='B3'
)as AB3
ON (AA1.stu_no=AB3.stu_no)left join
(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS C1
From study
Where course='C1'
)as AC1
ON (AA1.stu_no=AC1.stu_no) LEFT JOIN
(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS C2
From study
Where course='C2'
)as AC2
ON (AA1.stu_no=AC2.stu_no)LEFT JOIN(
Select
stu_no,'成绩:'+source+' 教师:'+tehname +'时间: '+ cast(rec_cr as varchar(16)) AS C3
From study
Where course='C3'
)as AC3
ON (AA1.stu_no=AC3.stu_no)