




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web程序设计(第4版)“十二五”普通高等教育本科国家级规划教材第1页,共54页。目 录第 1 章 Web编程基础知识 第 2 章 Web应用程序开发与运行环境 第 3 章 HTML与XML 第 4 章 层叠样式表CSS 第 5 章 Web客户端程序设计第 6 章 Web服务器端程序设计 第 7 章 Web数据库程序设计 第 8 章 ASP.NET综合应用实例 第2页,共54页。第 8 章 ASP.NET综合应用实例8.1 基于数据库的BBS论坛管理 8.2 公文管理系统 第3页,共54页。8.1 基于数据库的BBS论坛管理 本系统运用了ADO.NET数据访问对象,实现了基于Web的论坛帖子的
2、增加、删除、修改、查询等简单的管理功能,其中包括管理员登录、发布、查询和维护帖子等功能。 采用Access数据库进行数据管理第4页,共54页。 管理员以admin/admin用户身份/密码登录后,进入论坛主帖查询页面,分页显示所有主帖的标题; 在查询页面中可以对某个帖子进行修改、删除操作,也可以查看帖子的详细信息; 另外,还可以发布新帖子。 8.1.1 功能设计8.1 基于数据库的BBS论坛管理 第5页,共54页。 采用Access管理论坛数据; 所使用的数据库名为MyBBS_Data.mdb,共有两张表 :用户表User,存储用户的信息,其中包括管理员用户;主帖表Topic,主帖表存储用户发
3、布的主帖信息。8.1.2 数据库设计8.1 基于数据库的BBS论坛管理 第6页,共54页。8.1.2 数据库设计8.1 基于数据库的BBS论坛管理 字 段 名数据类型可否为空说 明UserID数值否用户唯一标识,主键,自动增量UserLoginName文本否登录名UserName文本否用户名Password文本否密码Address文本是住址Homepage文本是个人主页Email文本是邮箱地址 User数据表结构 第7页,共54页。8.1.2 数据库设计8.1 基于数据库的BBS论坛管理 Topic数据表结构 字 段 名数据类型可否为空说 明TopicID数值否主帖唯一标识,主键,自动增量Us
4、erLoginName文本否发帖者登录名TopicTitle文本否主帖标题TopicContent备注否帖子内容CreateTime日期时间是发帖时间IP文本是发布机器IP第8页,共54页。(1)登录页面设计:为整齐美观,在窗体中放入一个3行1列的HTML表格,在表格中合适的位置输入“登录名”和“密码”文字,放置一个输入用户名的文本框、一个密码输入框、一个登录按钮。界面如图所示。 8.1.3 界面设计8.1 基于数据库的BBS论坛管理 第9页,共54页。(2)主帖查询页面设计:利用GridView控件分页显示主帖列表,并在GridView控件中添加修改、删除按钮和显示详细信息的超链接,另外在页
5、面下方添加一个发表新帖的超链接。界面如图所示。 8.1.3 界面设计8.1 基于数据库的BBS论坛管理 第10页,共54页。(3)帖子详细信息页面设计:利用Label控件分别显示帖子标题、发帖人、发帖时间、帖子内容等信息。界面如图所示。8.1.3 界面设计8.1 基于数据库的BBS论坛管理 第11页,共54页。(4)发布帖子页面设计:利用文本框控件分别输入帖子标题、帖子内容等信息。界面如图所示。 8.1.3 界面设计8.1 基于数据库的BBS论坛管理 第12页,共54页。(5)修改帖子页面设计:与发布帖子界面类似。界面如图所示。8.1.3 界面设计8.1 基于数据库的BBS论坛管理 第13页,
6、共54页。(1)GridView定制:在GridView控件中,表格字段列均采用数据绑定列BoundField模板来定制,删除、修改采用数据绑定列ButtonField模板,详细信息使用数据绑定列HyperLinkField模板定制。(2)分页:将GridView的AllowPaging属性设置为True为其启用分页功能,由于GridView的数据源在设计期间未绑定任何数据源控件,因此分页功能的代码需要手工编写。在GridView控件的PageIndexChanging事件处理程序中,通过设置其PageIndex属性值为新的页索引号来实现,新页索引号通过事件参数GridViewPageEven
7、tArgs 的NewPageIndex属性值获得。(3)数据库访问编程:删除、修改采用按钮数据绑定列定制,当用户单击删除、修改按钮时将触发RowCommand事件,因此在该事件处理代码中实现删除、修改操作。编程时利用OleDbCommand对象执行Insert和Update命令来实现相关功能。查询显示主帖列表是利用OleDbDataAdapter、dataset来实现的。 8.1.4 关键技术8.1 基于数据库的BBS论坛管理 第14页,共54页。(1)在Visual Studio 网站App_Data文件夹中创建Access数据库MyBBS_Data.mdb,建立用户表User和主帖表Top
8、ic。配置数据库连接字符串,保存在web.config配置文件中。(2)在Visual Studio 网站中新建manage文件夹,在其中新建登录网页Login.aspx、主帖查询页面TopicList.aspx、帖子详细信息页面TopicDetail.aspx、发布帖子页面TopicAdd.aspx、修改帖子页面TopicUpdate.aspx。(3)分别编写网页的功能代码。 8.1.5 实现过程 8.1 基于数据库的BBS论坛管理 第15页,共54页。(1)登录页Login.aspx.cs部分代码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected voi
9、d ButtonLogin_Click(object sender, EventArgs e) /获取用户在页面上的输入 string userLoginName = TextBoxLoginName.Text.Trim();/用户登录名 string userPassword = TextBoxPassword.Text.Trim();/密码 OleDbDataReader dr; / 新建DataReader对象 / 新建数据库连接conn,连接到Access数据库 System.Data.OleDb.OleDBConnection conn = new OleDbConnection()
10、; conn.ConnectionString = ConfigurationManager.ConnectionStringsMyBBSConnectionString.ConnectionString; OleDbCommand cmd = new OleDbCommand(); / 新建Command对象 cmd.Connection = conn; cmd.CommandText = SELECT * FROM User WHERE UserLoginName =UserLoginName ; cmd.CommandType = CommandType.Text; / 添加查询参数对象
11、,并给参数赋值 cmd.Parameters.AddWithValue(UserLoginName, userLoginName); 第16页,共54页。(1)登录页Login.aspx.cs部分代码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 try / 打开conn连接,检索User表的Password字段 conn.Open(); / 打开数据库连接 dr = cmd.ExecuteReader();/ 将检索的记录行填充到DataReader对象中 if (dr.Read() /如果用户存在 / 如果密码正确,转入留言列表页面 if (dr.GetString(3
12、) = userPassword) / 使用Session来保存用户登录名信息 Session.Add(login_name, userLoginName); Response.Redirect(TopicList.aspx); else/如果密码错误,给出提示 Response.Write(alert(密码错误,请重新输入密码!); 第17页,共54页。(1)登录页Login.aspx.cs部分代码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 else /如果用户不存在 Response.Write(alert(对不起,用户不存在! ); dr.Close(); /关闭
13、DataReader对象 catch (OleDbException oledbException) Response.Write(oledbException.Message); / 显示连接异常信息 finally / 如果连接打开则关闭连接 if (conn.State = ConnectionState.Open) conn.Close(); 第18页,共54页。(2)主帖查询页面TopicList.aspx.cs部分代码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected void Page_Load(object sender, EventArgs
14、 e) if (!CheckUser()/ 如果用户未登录,强制转到登录页 Response.Redirect(Login.aspx); if (!this.IsPostBack)/ 如果首次加载,调用InitData() InitData();private bool CheckUser() / 验证用户是否登录 / 如果没有登录,提示用户登录 if (Sessionlogin_name = null) Response.Write(alert(请登录!);); return false; return true;第19页,共54页。(2)主帖查询页面TopicList.aspx.cs部分代
15、码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 private void InitData() / 按时间降序,读取帖子数据 / 新建数据库连接conn,连接到Access数据库 System.Data.OleDb.OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStringsMyBBSConnectionString.ConnectionString; DataSet ds = new DataSet(); / 新建D
16、ataSet对象 / 新建DataAdapter对象,打开conn连接,检索Topic表的所有字段 OleDbDataAdapter da = new OleDbDataAdapter(SELECT * FROM Topic ORDER BY CreateTime DESC, conn); conn.Open(); / 打开数据库连接 da.Fill(ds); / 将检索的记录行填充到DataSet对象ds中 conn.Close(); / 关闭数据库连接 GV.DataSource = ds; GV.DataBind(); LabelPages.Text = 查询结果(第 + (GV.Pag
17、eIndex + 1).ToString() + 页 共 +GV.PageCount.ToString() + 页);第20页,共54页。(2)主帖查询页面TopicList.aspx.cs部分代码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 private void deleteData(int topic_Id) / 删除帖子 / 新建数据库连接conn,连接到Access数据库 System.Data. OleDb. OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = Confi
18、gurationManager.ConnectionStringsMyBBSConnectionString.ConnectionString; OleDbCommand cmd = new OleDbCommand(); / 新建Command对象 cmd.Connection = conn; cmd.CommandText = DELETE FROM Topic WHERE TopicID=TopicID; cmd.CommandType = CommandType.Text; / 添加查询参数对象,并给参数赋值 cmd.Parameters.AddWithValue(TopicID ,
19、topic_Id); try conn.Open(); / 打开数据库连接 cmd.ExecuteNonQuery(); /将添加记录 Response.Redirect(TopicList.aspx); catch (OleDbException oledbException) Response.Write(oledbException.Message); / 显示连接异常信息 finally / 如果连接打开则关闭连接 if (conn.State = ConnectionState.Open) conn.Close(); 第21页,共54页。(2)主帖查询页面TopicList.aspx
20、.cs部分代码如下:8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected void GV_RowCommand(object sender, GridViewCommandEventArgs e) int index = Convert.ToInt32(e.CommandArgument); /待处理的行下标 int topicId = -1; / 根据用户单击的按钮,执行不同程序 switch (e.CommandName) /修改 case Update: topicId = Convert.ToInt32(GV.Rowsindex.Cells0.Text);
21、Response.Redirect(TopicUpdate.aspx?topic_id= + topicId); break; /删除 case Delete: topicId = Convert.ToInt32(GV.Rowsindex.Cells0.Text); deleteData(topicId); InitData(); break; default: break; protected void GV_PageIndexChanging(object sender, GridViewPageEventArgs e) / 分页 GV.PageIndex = e.NewPageIndex
22、; InitData(); / 刷新列表,显示新页第22页,共54页。(3)帖子详细信息页面TopicDetail.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected void Page_Load(object sender, EventArgs e) / 如果首次加载,调用InitData() if (!this.IsPostBack) InitData();protected void ButtonReply_Click(object sender, EventArgs e)protected void ButtonBack_Cl
23、ick(object sender, EventArgs e)Response.Redirect(TopicList.aspx);private void InitData()/ 获取链接传递的参数值 int topicID = Convert.ToInt32(Request.QueryStringtopic_id); / 新建数据库连接conn,连接到Access数据库 System.Data. OleDb. OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = ConfigurationManager.C
24、onnectionStringsMyBBSConnectionString.ConnectionString; OleDbDataReader dr; / 新建DataReader对象 第23页,共54页。(3)帖子详细信息页面TopicDetail.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; cmd.CommandText = SELECT * FROM Topic WHERE TopicID=TopicID; cmd.C
25、ommandType = CommandType.Text; / 添加查询参数对象,并给参数赋值 cmd.Parameters.AddWithValue(TopicID , topicID); try conn.Open(); / 打开数据库连接 dr = cmd.ExecuteReader(); / 将检索的记录行填充到DataReader对象中 if (dr.Read()/ 如果有记录,显示该记录 LabelTitle.Text = System.Web.HttpUtility.HtmlEncode(dr.GetString(2); LabelContent.Text = System.W
26、eb.HttpUtility.HtmlEncode(dr.GetString(3); LabelCreateTime.Text = dr.GetDateTime(4).ToString(); LabelIP.Text = dr.GetString(5); LabelUserLoginName.Text = dr.GetString(1); dr.Close(); 第24页,共54页。(3)帖子详细信息页面TopicDetail.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 catch (OleDbException oledbException)
27、Response.Write(oledbException.Message); / 显示连接异常信息 finally / 如果连接打开则关闭连接 if (conn.State = ConnectionState.Open) conn.Close(); 第25页,共54页。(4)发布帖子页面TopicAdd.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected void ButtonOK_Click(object sender, EventArgs e)/ 新建数据库连接conn,连接到Access数据库 System.Data.OleD
28、b.OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStringsMyBBSConnectionString.ConnectionString; OleDbCommand cmd = new OleDbCommand(); / 新建Command对象 cmd.Connection = conn; cmd.CommandText = INSERT INTO Topic(UserLoginName, TopicTitle, TopicConten
29、t,CreateTime,IP) VALUES(UserLoginName,TopicTitle,TopicContent,CreateTime,IP); cmd.CommandType = CommandType.Text; / 添加查询参数对象,并给参数赋值 cmd.Parameters.AddWithValue(UserLoginName , Sessionlogin_name.ToString(); cmd.Parameters.AddWithValue(TopicTitle , TextBoxTitle.Text); cmd.Parameters.AddWithValue(Topic
30、Content , TextBoxContent.Text); cmd.Parameters.AddWithValue(CreateTime , DateTime.Now.ToString(); cmd.Parameters.AddWithValue(IP , Request.ServerVariablesREMOTE_HOST); 第26页,共54页。(4)发布帖子页面TopicAdd.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 try conn.Open(); / 打开数据库连接 cmd.ExecuteNonQuery(); /将添加记录 R
31、esponse.Redirect(TopicList.aspx); catch (OleDbException oledbException) Response.Write(oledbException.Message); / 显示连接异常信息 finally / 如果连接打开则关闭连接 if (conn.State = ConnectionState.Open) conn.Close(); protected void ButtonBack_Click(object sender, EventArgs e)Response.Redirect(TopicList.aspx); 第27页,共54
32、页。(5)修改帖子页面TopicUpdate.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected void Page_Load(object sender, EventArgs e) / 如果首次加载,调用InitData() if (!IsPostBack) InitData();protected void ButtonUpdate_Click(object sender, EventArgs e)/ 新建数据库连接conn,连接到Access数据库 System.Data.OleDb. OleDbConnection conn
33、= new OleDbConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStringsMyBBSConnectionString.ConnectionString; OleDbCommand cmd = new OleDbCommand(); / 新建Command对象 cmd.Connection = conn; cmd.CommandText = UPDATE Topic SET TopicTitle= TopicTitle, TopicContent= TopicContent WHERE Topic
34、ID=TopicID; cmd.CommandType = CommandType.Text; / 添加查询参数对象,并给参数赋值 cmd.Parameters.AddWithValue(TopicTitle , TextBoxTitle.Text); cmd.Parameters.AddWithValue(TopicContent , TextBoxContent.Text); cmd.Parameters.AddWithValue(TopicID , Convert.ToInt32(Request.QueryStringtopic_id); 第28页,共54页。(5)修改帖子页面Topic
35、Update.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 try conn.Open();/ 打开数据库连接 cmd.ExecuteNonQuery(); /将添加记录 Response.Redirect(TopicList.aspx); catch (OleDbException oledbException) Response.Write(oledbException.Message); / 显示连接异常信息 finally / 如果连接打开则关闭连接 if (conn.State = ConnectionState.Open) conn.C
36、lose(); 第29页,共54页。(5)修改帖子页面TopicUpdate.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 protected void ButtonBack_Click(object sender, EventArgs e)Page.Response.Redirect(TopicList.aspx);private void InitData()/ 获取链接传递的参数值 int topicID = Convert.ToInt32(Request.QueryStringtopic_id); / 新建数据库连接conn,连接到Acce
37、ss数据库 System.Data.OleDb. OleDbConnection conn = new OleDbConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStringsMyBBSConnectionString.ConnectionString; OleDbDataReader dr; / 新建DataReader对象 OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; cmd.CommandText = SELECT * F
38、ROM Topic WHERE TopicID=TopicID; cmd.CommandType = CommandType.Text; / 添加查询参数对象,并给参数赋值 cmd.Parameters.AddWithValue(TopicID , topicID); 第30页,共54页。(5)修改帖子页面TopicUpdate.aspx.cs部分代码如下: 8.1.6 主要程序代码 8.1 基于数据库的BBS论坛管理 try conn.Open(); / 打开数据库连接 dr = cmd.ExecuteReader(); / 将检索的记录行填充到DataReader对象中 if (dr.Re
39、ad()/ 如果有记录,显示记录 TextBoxTitle.Text = dr.GetString(2); TextBoxContent.Text = dr.GetString(3); LabelCreateTime.Text = dr.GetDateTime(4).ToString(); LabelIP.Text = dr.GetString(5); LabelUserLoginName.Text = Sessionlogin_name.ToString(); dr.Close(); catch (OleDbException oledbException) Response.Write(o
40、ledbException.Message); / 显示连接异常信息 finally / 如果连接打开则关闭连接 if (conn.State = ConnectionState.Open) conn.Close(); 第31页,共54页。8.2 公文管理系统 应用ASP.NET技术开发的公文管理系统,综合运用了数据库解决方案、封装、用户控件、文件上传及高级控件等,实现基于Web的公文发布、接收、浏览、查询和维护等功能。 系统由多个网站模块组成。每个模块由一组页面及相关程序组成,完成相对独立的任务。模块涉及与用户的交互过程,包含的文件数目和类型较多,并需要访问数据库。第32页,共54页。8.2
41、.1 系统功能 系统的功能模块: 用户登录 发文浏览 收文浏览 发文处理 收文处理 文件查询8.2 公文管理系统 第33页,共54页。8.2.1 系统功能 (1)用户登录。为了保证系统使用的安全性,进入系统首先要登录。用户成功登录系统后,系统使用Session变量记录已登录的用户信息,在执行各功能之前都先进行登录检查,只有已正常登录的用户才可使用系统功能。 (2)发文浏览。以分页方式列出所有发文的编号和时间,用户单击编号查看详细内容,并可发表阅文回执。(3)收文浏览。其功能与发文浏览十分相似,也以分页方式列出所有收文的编码和时间,用户单击编号查看详细内容,并可发表阅文回执。 8.2 公文管理系
42、统 第34页,共54页。8.2.1 系统功能 (4)发文处理。用于签发公文。用户填写文件标题、编号、有效期及办理建议,选择文件名后提交,即可发布文件。(5)收文处理。用于签收公文。用户选择文件标题后,即可显示该文件的编号、发文日期、有效期及发文单位,并可查阅文件内容。用户可填写办理建议后执行签收功能。(6)文件查询。可根据文件类型(发文、收文)、标题关键字、发(收)文日期等进行文件查询。符合条件的文件信息以列表形式呈现,单击编号进入发文详情页面查看详细内容。 8.2 公文管理系统 第35页,共54页。8.2.2 数据库设计 本系统选用Access数据库,所使用的数据库名为oadata.mdb,
43、包括4个数据表,分别是:1)userpass:用户信息表;2)wdlx:文件类型表;3)wddata:文件信息表;4)part:部门信息表;8.2 公文管理系统 (1)数据库结构第36页,共54页。8.2.2 数据库设计 userpass表结构:字 段 名数据类型可否为空说 明Userid文本否用户编号,主键Partid文本否该用户所属部门编号Userkey文本否用户权限Username文本可用户姓名Password文本否用户密码8.2 公文管理系统 第37页,共54页。8.2.2 数据库设计 wdlx表结构:字 段 名数据类型可否为空说 明Id数值否自动编号(记录号)lx文本否文档类型zh文
44、本否文档字号8.2 公文管理系统 第38页,共54页。8.2.2 数据库设计 wddata表结构:字 段 名数据类型可否为空说 明Id数值否自动编号(作为文件编号)zh文本否文档字号lx文本否文档类型Username文本否用户姓名Partid文本否用户所属部门编号SendDate日期/时间否签发时间ExpireDate日期/时间否过期时间Title文本否文件标题Docfile文本否文件名Other备注可文件说明8.2 公文管理系统 第39页,共54页。8.2.2 数据库设计 part表结构:字 段 名数据类型可否为空说 明Id数值否自动编号(记录号)Partid文本否部门编号Partname文
45、本否部门名称8.2 公文管理系统 第40页,共54页。8.2.2 数据库设计 8.2 公文管理系统 (2)配置数据库连接建立数据库文件oadata.mdb后,将其保存在所创建的网站项目的“App_Data”文件夹下,在项目中配置web.config中的数据库连接参数如下: 第41页,共54页。8.2.2 数据库设计 8.2 公文管理系统 (3)数据库访问类由于多个功能模块都要执行数据库操作,因此将数据库操作功能设计为DBHelper类,将其保存在网站项目的“App_Code”文件夹下,DBHelper类内容如下:public class DBHelper protected OleDbConn
46、ection Connection; /存放连接对象 protected string ConnectionString; /存放连接串 public DBHelper() /构造函数 ConnectionString = WebConfigurationManager.ConnectionStringsdocumentsConnectionString.ConnectionString; 第42页,共54页。8.2.2 数据库设计 8.2 公文管理系统 (3)数据库访问类public void Open() /公有方法,建立数据库连接 /判断数据库连接是否存在 if (Connection
47、= null) /不存在,新建并打开 Connection = new OleDbConnection(); Connection.ConnectionString = ConnectionString; Connection.Open(); else /存在,判断是否处于关闭状态 if (Connection.State.Equals(ConnectionState.Closed) Connection.Open(); /连接处于关闭状态,重新打开 public void Close() /公有方法,关闭数据库连接 if (Connection.State.Equals(Connection
48、State.Open) Connection.Close(); /连接处于打开状态,关闭连接 第43页,共54页。8.2.2 数据库设计 8.2 公文管理系统 (3)数据库访问类public int ExecuteSql(string SqlStr) /公有方法,根据Sql语句,执行并返回影响结果的行数 int Count = -1; Open(); OleDbCommand cmd = new OleDbCommand(SqlStr, Connection); Count = cmd.ExecuteNonQuery(); Close(); return Count; 第44页,共54页。8.
49、2.3 各子系统设计与程序代码 (1)创建母版页母版页提供了类似模板的机制。本系统将logo、功能导航栏和页脚等各页面的公共内容设计为母版页,在母版页中定义内容区域,各功能模块只需将内容页放置到内容区域即可。母版页面如图所示。 8.2 公文管理系统 第45页,共54页。8.2.3 各子系统设计与程序代码 (1)创建母版页8.2 公文管理系统 母版页采用DIV+CSS方式设计,将页面设计为如下几个块, maindiv:全局页, HeadDiv:页首, MenuDiv:功能导航栏, ContentDiv:内容区域, EndDiv:页脚; 各块的样式分别进行定义。第46页,共54页。8.2.3 各子
50、系统设计与程序代码 (2)登录页面8.2 公文管理系统 该页面提供用户登录界面,如图所示。当用户成功登录后,用Session变量记录其用户信息,包括用户名、所在单位等。第47页,共54页。8.2.3 各子系统设计与程序代码 (2)登录页面8.2 公文管理系统 登录页面采用table控件组织信息,按钮处理程序如下: protected void BtnOK_Click(object sender, EventArgs e) string strId = txtid.Text; string strPass = txtpassword.Text; DBHelper dh = new DBHelpe
51、r(); /创建数据操作类实例 string strSql = SELECT * FROM userpass WHERE Userid= + strId + AND Passwd= + strPass + ; DataSet DS = dh.GetDataSetSql(strSql,userpass); if (DS.Tables0.Rows.Count=0) Label3 .Text =账号或密码有错,请重新输入; else /登录成功,用Session变量保存用户信息 SessionUserid=txtid .Text ; SessionUsername = DS.Tables0.Rows
52、0Username.ToString(); SessionUserpart = DS.Tables0.Rows0Partid.ToString(); Response.Redirect(LoginSucc.aspx); /转向登录成功页 protected void BtnDel_Click(object sender, EventArgs e) txtid.Text = ; txtpassword.Text = ; 第48页,共54页。8.2.3 各子系统设计与程序代码 (3)发文浏览和发文详情8.2 公文管理系统 发文浏览界面如图a所示。首先列出发文的编号、文件标题和发文日期,其中编号为超
53、链接按钮,当用户单击某个发文编号后,将进入发文详情页面,显示该发文的详情,如图b所示。图a图b发文浏览界面中采用GridView控件,显示文档摘要信息(ID、文号、标题和日期)。发文详情界面中DataList控件,显示文档详细内容。第49页,共54页。8.2.3 各子系统设计与程序代码 (3)发文浏览和发文详情8.2 公文管理系统 进入发文浏览页面时通过Page_Load()事件处理程序判断是否是登录用户;程序如下: protected void Page_Load(object sender, EventArgs e) if (SessionUserid = null ) Response.
54、Write(alert(登录错误);window.location.href=./login.aspx); 单击发文列表中的Id,进入发文详情页面,该页面的Page_Load()事件处理程序通过传入的Id号检索wddata表,显示发文详情。程序如下:protected void Page_Load(object sender, EventArgs e) DBHelper dh = new DBHelper(); string strSql = select * from wddata where Id= + Request.Paramsid.ToString(); DataSet DS = dh.GetDataSetSql(strSql, wddata); DataList1.DataSource = DS.Tables
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国强劲钙软胶囊数据监测研究报告
- 2025至2030年中国异型材制品市场调查研究报告
- 2025至2030年中国工业用快速卷门数据监测研究报告
- 茶叶安全培训
- 脊髓型颈椎病个案护理
- 高一对口教育试卷及答案
- 泰国旅游攻略必去景点
- 足球体能训练中心行业跨境出海战略研究报告
- 做线上商城软件合同样本
- 丙烯酸酯橡胶透明性提升企业制定与实施新质生产力战略研究报告
- 2024-2025学年人教新目标英语八年级下册期末综合检测卷(含答案)
- 331金属晶体课件高二化学人教版选择性必修2
- 矿山矿石采购合同模板
- 2024年浪潮数字企业技术有限公司社会招聘(105人)笔试核心备考题库及答案解析
- 第47届世界技能大赛江苏省选拔赛竞赛技术文件-混凝土建筑项目
- 2024年新人教版四年级数学下册《第6单元第2课时 小数加减法》教学课件
- 国开2024年《数据库运维》形考1-3
- 劳动合同(模版)4篇
- 137案例黑色三分钟生死一瞬间事故案例文字版
- 药物研发监管的国际协调
- 生猪屠宰兽医卫生检验人员理论考试题及答案
评论
0/150
提交评论