网站设计与开发数据库课程设计.doc
课 程 设 计资 料 袋 学院(系、部) 20112012 学年第 1 学期 课程名称 SQL Server 2005数据库应用与开发 指导教师 职称 学生姓名 专业班级 学号 题 目 Web Developer 2005网站设计与开发 成 绩 起止日期 2011 年 12 月 19 日 2011 年 12 月 23 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书12课程设计说明书13附件:课程设计主要模块实现代码1张456课程设计任务书2011 2012 学年第1学期 学院(系、部) 专业 班课程名称: SQL Server 2005数据库应用与开发 设计题目: Web Developer 2005网站设计与开发 完成期限:自 2011 年 12 月 19 日至 2011 年 12 月 23 日共 1 周任务及内容设计的任务:1使用Web Developer 2005集成开发环境开发学生成绩查询系统2.开发数据库系统的过程中,在进行数据库的设计和使用的同时,还要设计和实现前台应用程序,由此实现对基本业务数据的处理和客户的需求。内容包括:工具箱的使用及其功能了解、事件模型基础、数据库常用基本控件、数据库常用高级控件、布局管理器、Developer菜单、图像处理、表格的高级应用等。进度安排起止日期工作内容2011.12.19文件Defalut.aspx和Login.aspx设计2011.12.20文件Exit.aspx和Teacher.master设计2011.12.21文件Student.master和TSearch.aspx设计2011.12.22文件Tmaintain.aspx和SSearch.aspx设计2011.12.23整理资料,书写文档主要参考资料1 姜桂洪,张龙波等SQL Server 2005. 北京:清华大学出版社,2010.2 Eric GriffinVisual Web Developer从入门到精通北京:清华大学出版社,2010.指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日准备工作:在D盘新建文件夹“sql”,打开“Microsoft Visual Web Developer 2005 速成版”,在该文件夹目录下新建网站,选择语言Visual Basic;单击“确定”。一 文件Default.aspx设计:源代码为:<% Page Language="VB" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Response.Redirect("Login.aspx") '就是重定向到这个页面,跳转页面的后台写法() End Sub</script><html xmlns="http:/www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head><body> <form id="form1" runat="server"> <div> </div> </form></body></html>1 新建文件,取名为Default.aspx,替换原来的文件。2 单击“源”,单击选项卡组下端的“服务器对象与事件”旁的下拉菜单,选择“Page”。单击其右侧的下拉列表,选择“Load”。3在光标跳转处输入语句:Response.Redirect("Login.aspx"),表示重定向到这个页面,即跳转页面的后台写法。二 文件Login.aspx设计:源代码为:<% Page Language="VB" %><% import Namespace="System.Data.SqlClient" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> Protected Sub LoginBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) If Page.IsValid Then '连接到数据库WebDBStudents Dim con As SqlConnection Dim cmd As SqlCommand Dim dtr As SqlDataReader con = New SqlConnection("Server=VIU9IM6TKCWEEDX; Integrated Security= True; database=WebDBStudents") con.Open() '创建查询Users表的SQL命令 Dim userID As String = UserName.Text Dim password As String = UserPass.Text Dim sSql As String = "select * from users where ID='" & userID & "'" sSql = sSql + "and 密码='" & password & "'" cmd = New SqlCommand(sSql, con) '执行SQL命令并返回结果 dtr = cmd.ExecuteReader() '判断该用户是否存在 If (dtr.HasRows() Then '存在 dtr.Read() 'UserID、UserName、UserType信息存于Session中 Session("UserID") = dtr.GetString(0) Session("UserName") = dtr.GetString(1) Session("UserType") = dtr.GetString(3) '为提供的用户名创建一个身份验证票证,并将其添加到响应的Cookie集合 FormsAuthentication.SetAuthCookie(Session("UserID").ToString, False) If Session("UserType") = 0 Then '学生身份登录,跳转到学生成绩查询系统主菜单页面 Response.Redirect("SMainMenu.aspx") Else '教师身份登录,跳转到学生成绩管理系统主菜单页面 Response.Redirect("TMainMenu.aspx") End If Else '该用户不存在 Msg.Text = "用户ID或密码有错,请重新输入!" End If End If End Sub</script><html xmlns="http:/www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head><body style="text-align: center"> <form id="form1" runat="server"> <div> <strong><span style="font-size: 24pt"> 欢迎使用学生成绩管理系统</span></strong><br /> <hr /> </div> <table> <tr> <td style="width: 100px"> 用户ID:</td> <td style="width: 100px"> <asp:TextBox ID="UserName" runat="server"></asp:TextBox></td> </tr> <tr> <td style="width: 100px"> 口 令:</td> <td style="width: 100px"> <asp:TextBox ID="UserPass" runat="server" TextMode="Password"></asp:TextBox></td> </tr> </table> <asp:Button ID="LoginBtn" runat="server" OnClick="LoginBtn_Click" Text="登录" /> <br /> <asp:Label ID="Msg" runat="server"></asp:Label> </form></body></html>1 新建文件,取名为Login.aspx。2单击“设计”,在指令窗中输入“欢迎使用学生成绩管理系统”,格式为加粗居中。3 从工具箱中拖入“Horizontal Rule”到当前文字下方。4 将光标移至“Horizontal Rule”下方,设置对齐方式为“居中”,然后在菜单栏中单击“布局”,选择“插入表”,设置为两行两列,单击“确定”。5 如下图所示,在表中输入相应信息。6 从工具箱中依次拖入“TextBox”到表格的相应位置。7 设置“TextBox”属性,第一个的ID改为“UserName”;第二个的ID改为“UserPass”,TextMode改为“Password”。8 从工具箱中拖入“Button”至表格下方,设置属性,ID改为“LoginBtn”,Text改为“登录”。9 从工具箱中拖入“Label”至“Button”下方,设置属性,ID改为“Msg”,Text设置为空。最终效果如下图:三 文件Exit.aspx设计源代码为:<% Page Language="VB" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Session.Abandon() '完成目前网页之后就结束Session对象 Response.Redirect("Default.aspx") End Sub</script><html xmlns="http:/www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head><body> <form id="form1" runat="server"> <div> </div> </form></body></html>1 新建文件,取名为Exit.aspx。2单击“源”,单击选项卡组下端的“服务器对象与事件”旁的下拉菜单,选择“Page”。单击其右侧的下拉列表,选择“Load”。3 在光标跳转处输入语句:Session.Abandon() Response.Redirect("Default.aspx")表示完成目前网页之后就结束Session对象。四 文件Teacher.master设计源代码为:<% Master Language="VB" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"></script><html xmlns="http:/www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head><body> <form id="form1" runat="server"> <div> <table> <tr> <td colspan="2" style="text-align: center; height: 40px;"> <strong><span style="font-size: 24pt"> 欢迎使用学生成绩管理系统<br /> <hr /> </span></strong></td> </tr> <tr> <td style="width: 139px" valign="top"> <asp:HyperLink ID="TSearch" runat="server" NavigateUrl="TSearch.aspx">成绩查询</asp:HyperLink><br /> <br /> <asp:HyperLink ID="TMaintain" runat="server" NavigateUrl="TMaintain.aspx">成绩维护</asp:HyperLink><br /> <br /> <asp:HyperLink ID="ExitSystem" runat="server" NavigateUrl="Exit.aspx">退出系统</asp:HyperLink></td> <td style="width: 517px"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </td> </tr> </table> </div> </form></body></html>1 新建文件,取名为Teacher.master。2 单击“设计”,删除“ContentPlaceHolder”。3在菜单栏中单击“布局”,选择“插入表”,设置为两行两列,单击“确定”。合并第一行,输入“欢迎使用学生成绩管理系统”。将表格调整为适当大小,再从工具箱中拖入“Horizontal Rule”到当前文字下方。4 在表格的第二行第一列中分别拖入三个“HyperLink”,设置属性,第一个的ID改为“TSearch”,Text改为“成绩查询”,NavigateUrl改为“TSearch.aspx”;第二个的ID改为“TMaintain”,Text改为“成绩维护”,NavigateUrl改为“TMaintain.aspx”;第三个的ID改为“ExitSystem”,Text改为“退出系统”,NavigateUrl改为“Exit.aspx”。5 在表格的第二行第二列中拖入“ContentPlaceHolder”。最终效果如下图:五 文件Student.master设计源代码为:<% Master Language="VB" %><!DOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Transitional/EN" "http:/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"></script><html xmlns="http:/www.w3.org/1999/xhtml" ><head runat="server"> <title>Untitled Page</title></head><body> <form id="form1" runat="server"> <div> <table> <tr> <td colspan="2" style="text-align: center"> <strong><span style="font-size: 24pt"> 欢迎使用学生成绩查询系统<br /> </span></strong> <hr /> </td> </tr> <tr> <td style="width: 141px" valign="top"> <asp:HyperLink ID="SSearch" runat="server" NavigateUrl="SSearch.aspx">成绩查询</asp:HyperLink> <br /> <br /> <asp:HyperLink ID="ExitSystem" runat="server" NavigateUrl="Exit.aspx">退出系统</asp:HyperLink></td> <td style="width: 505px"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 请选择功能菜单!</asp:ContentPlaceHolder> </td> </tr> </table> </div> </form></body></html>1 新建文件,取名为Student.master。2 单击“设计”,删除“ContentPlaceHolder”。3在菜单栏中单击“布局”,选择“插入表”,设置为两行两列,单击“确定”。合并第一行,输入“欢迎使用学生成绩管理系统”。将表格调整为适当大小,再从工具箱中拖入“Horizontal Rule”到当前文字下方。4 在表格的第二行第一列中分别拖入两个“HyperLink”,设置属性,第一个的ID改为“SSearch”,Text改为“成绩查询”,NavigateUrl改为“SSearch.aspx”;第二个的ID改为“ExitSystem”,Text改为“退出系统”,NavigateUrl改为“Exit.aspx”。5 在表格的第二行第二列中拖入“ContentPlaceHolder”,输入“请选择功能菜单!”。最终效果如下图:六 文件TSearch.aspx设计源代码为:<% Page Language="VB" MasterPageFile="/Teacher.master" Title="Untitled Page" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 班级:<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="班级" DataValueField="班级"> </asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WebDBStudentsConnectionString12 %>" SelectCommand="SELECT DISTINCT 班级 FROM Exam"></asp:SqlDataSource> <br /> <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource2"> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:WebDBStudentsConnectionString13 %>" SelectCommand="SELECT * FROM Exam WHERE (班级 = 班级)"> <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="班级" PropertyName="SelectedValue" Type="String" /> </SelectParameters> </asp:SqlDataSource></asp:Content>1 新建文件,取名为TSearch.aspx,选中“选择母版页”,文件夹内容为“Teacher.master”。2 单击“设计”,在“ContentPlaceHolder”中输入“班级:”,然后从工具箱中拖入“DropDownList”到当前文字之后,依次单击“选择数据源”,“新建数据源”,“数据库”,“新建连接”,选择本机数据源的服务器名和相应的数据库。在配置数据源选项卡中选中“班级”和“只返回唯一行”复选框。完成后,选中“启用AutoPostBack”复选框。3从工具箱中拖入“GridView”到“DropDownList”下方,如第2点所述完成配置数据源选项卡之前的操作。然后在当前选项卡中选中“*”复选框,单击“where”,选择“列”为“班级”,运算符为“=”,源为“control”,控件ID为“DropDownList1”,默认值为1,依此单击“添加”,“确定”,“完成”。最终效果如下图:七 文件TMaintain.aspx设计源代码为:<% Page Language="VB" MasterPageFile="/Teacher.master" Title="Untitled Page" %><script runat="server"> Protected Sub DetailsView1_ItemUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdatedEventArgs) GridView1.DataBind() End Sub</script><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="学号" DataSourceID="SqlDataSource1" PageSize="5"> <Columns> <asp:CommandField ShowSelectButton="True" /> <asp:BoundField DataField="学号" HeaderText="学号" ReadOnly="True" SortExpression="学号" /> <asp:BoundField DataField="姓名" HeaderText="姓名" SortExpression="姓名" /> <asp:BoundField DataField="班级" HeaderText="班级" SortExpression="班级" /> <asp:BoundField DataField="语文" HeaderText="语文" SortExpression="语文" /> <asp:BoundField DataField="数学" HeaderText="数学" SortExpression="数学" /> <asp:BoundField DataField="英语" HeaderText="英语" SortExpression="英语" /> <asp:BoundField DataField="计算机" HeaderText="计算机" SortExpression="计算机" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WebDBStudentsConnectionString14 %>" SelectCommand="SELECT * FROM Exam"></asp:SqlDataSource> <br /> <br /> <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="学号" DataSourceID="SqlDataSource2" Height="50px" Width="125px" OnItemUpdated="DetailsView1_ItemUpdated"> <Fields> <asp:BoundField DataField="学号" HeaderText="学号" ReadOnly="True" SortExpression="学号" /> <asp:BoundField DataField="姓名" HeaderText="姓名" SortExpression="姓名" /> <asp:BoundField DataField="班级" HeaderText="班级" SortExpression="班级" /> <asp:BoundField DataField="语文" HeaderText="语文" SortExpression="语文" /> <asp:BoundField DataField="数学" HeaderText="数学" SortExpression="数学" /> <asp:BoundField DataField="英语" HeaderText="英语" SortExpression="英语" /> <asp:BoundField DataField="计算机" HeaderText="计算机" SortExpression="计算机" /> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" /> </Fields> </asp:DetailsView> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:WebDBStudentsConnectionString16 %>" DeleteCommand="DELETE FROM Exam WHERE 学号 = 学号" InsertCommand="INSERT INTO Exam (学号, 姓名, 班级, 语文, 数学, 英语, 计算机) VALUES (学号, 姓名, 班级, 语文, 数学, 英语, 计算机)" SelectCommand="SELECT * FROM Exam WHERE (学号 = 学号)" UpdateCommand="UPDATE Exam SET 姓名 = 姓名, 班级 = 班级, 语文 = 语文, 数学 = 数学, 英语 = 英语, 计算机 = 计算机 WHERE 学号 = 学号"> <DeleteParameters> <asp:Parameter Name="学号" Type="String" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="姓名" Type="String" /> <asp:Par