讲课人:王璞 浙江工商职业技术学院.

Slides:



Advertisements
Similar presentations
基于 JSP 搭建 Web 应用程序. 第五章 Web 应用程序优 化 回顾 什么是会话跟踪技术 ? cookie 和 session 的区别是什么 ? 对象的四种作用域范围分别是什么?
Advertisements

ADO.NET – 连接数据库. 2 课程地位 STB SQL Server XML PSPM ASP.NET Oracle OOAD Computer Base HTML&JavaScript OOP\Java C C SQL Base JSP/Servlet EJB/WebService C#
班級:四服ㄧB 座號:40 指導老師:范靜媛老師 姓名:郭曼姿
SQL的简单查询.
Task #3 使用ASP.NET服务器控件创建页面.
第7章利用ADO.NET 进行数据访问.
ASP.NET 網頁製作教本 – 從基本語法學起
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
第六章 数据库和ADO.NET 褚龙现 软件学院.
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
MVC Servlet与MVC设计模式.
個案分析-毒奶粉 499M0031 林佩誼 499M0034 林孟寰 499M0030 余采潔 499M0053 呂宜樺
《ASP.NET数据库网站设计教程(C#版)》
資料庫管理 資管二 賴柏融.
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
《ASP.NET数据库网站设计教程(C#版)》
《ASP.NET数据库网站设计教程(C#版)》
LINQ 建國科技大學 資管系 饒瑞佶.
数据库操作示例 import java.sql.*; //导入java.sql包 public class JDBCDemo {
課程名稱:資料庫系統 授課老師:李春雄 博士
在 Web 应用中,导航是非常重要的。ASP
Chapter 12 T-SQL 語法與 ASP.NET.
資料庫安全 (Database Security)
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
2018/11/23 面向对象与多线程综合实验-数据库操作 教师:段鹏飞.
ASP.NET 網頁製作教本 – 從基本語法學起
ADO.NET.
課程名稱:資料庫系統 授課老師:李春雄 博士
主 讲 教 师:陆有军 Web技术与应用 第六章 ADO.NET 主 讲 教 师:陆有军
課程名稱:資料庫系統 授課老師:李春雄 博士
班級:博、碩子一甲 授課老師:鐘國家 助教:陳國政
第6章 ADO.NET数据访问接口 6.
上述代码规范了 INSERT 语句的编写规范,其中:
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第7章 ADO.NET操作SQL Server数据库
ASP.NET 網頁製作教本 – 從基本語法學起
第10章 儲存偏好設定、檔案與資料庫 10-1 存取偏好設定 10-2 檔案存取 10-3 關聯式資料庫與SQLite
5.5.1 存储过程的优点 ① 事务处理 ② 速度和性能 ③ 过程控制 ④ 安全性 ⑤ 减少网络流量和通信 ⑥ 模块化
5.1.1 使用 ExecuteReader()操作数据库
第14章 伺服器檔案、電子郵件處理與Ajax 14-1 資料夾與檔案操作 14-2 文字檔案的讀寫 14-3 電子郵件與附檔處理
1 创建SqlDataSouce控件 数据源控件(SqlDataSource)
使用ADO.NET访问数据 数据库连接 C#程序设计课程组.
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
模板调整技巧.
快递单模板的制作.
第5章 .NET框架类 5.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
C# 程序设计教程 同济大学计算机系基础学科组
Connection对象 访问数据库的第一步是建立连接,只有建立连接,才可能实现 在数据库和应用程序之间移动数据。 ADO提供了连接对象:
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
P2P聊天工具.
订单打印模板调整技巧.
第五讲 酒店客房管理系统(一) 教育部“十二五”职业教育国家规划教材
第十讲 学生成绩管理系统(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
普通高速模板的制作与调整.
Ch11 資料庫範例_與Swing結合 物件導向系統實務.
SQL查询语句 蔡海洋.
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
Controls.
讲课人:王璞 浙江工商职业技术学院.
ASP.NET实用教程 清华大学出版社 第9章数据库应用 教学目标 教学重点 教学过程 2019年5月3日.
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
openFileDialog1.ShowDialog() 對話匣
資料庫應用與實作 一到六章重點、習題.
小腳ㄚ遊港都 製作人:葉睿恩、陳品潔、洪采襄.
Web安全基础教程
数据库应用技术 天津电大 翟迎建.
Presentation transcript:

讲课人:王璞 浙江工商职业技术学院

7.4.1 导航菜单配置 在后台管理的框架集中,可以配置导航菜单进行页面跳转,管理人员可以通过导航菜单进行页面的 管理和跳转操作。当管理员单击导航菜单上的新闻管理时,就应该在主工作区中间显示新闻管理页面而不会刷新其他页面,同样当管理员点击其他操作时,会跳转到不同的页面。 Left.aspx页面代码使用了TreeView控件中节点的NavigateUrl属性配置了单击该节点时应该跳转的页面,并使用了节点的Target属性进行了连接应该跳转的框架集。 注意:在超链接中包含 target 属性,而 TreeView 控件同样包含 Target 属性。在框架集中,需要指定相应的连接所需要跳转的框架,否则跳转的框架会在自身页面中执行。

7.4.2 身份验证页面 在管理员操作之前,首先需要进行身份验证,如果管理员是合法的用户,那么系统就能够使管理员进行添加和删除等操作。如果系统验证操作人员不是合法用户,那么就不应该为用户赋予权限,并阻止用户的登录和管理操作。打开登录页面,双击按钮编写相应的登录事件,示例代码如下所示。 protected void Button1_Click(object sender, EventArgs e) { try SqlConnection con = new SqlConnection("Data Source=(local); Initial Catalog=news;Integrated Security=True"); con.Open(); //创建连接 string strsql = "select * from admin where admin='" + TextBox1.Text + "' and password='"0 + TextBox2.Text + "'"; SqlDataAdapter da = new SqlDataAdapter(strsql, con); DataSet ds = new DataSet(); int count = da.Fill(ds, "table"); if (count > 0) Session["admin"] = TextBox1.Text; Response.Redirect("default.aspx"); } else Label1.Text = "无法登录,请检查用户名和密码"; //创建 SQL //创建适配器 //创建数据集 //填充数据集 //如果存在用户 //配置一个 Session //页面跳转   //提示无法登录 catch Label1.Text = "无法进行数据连接"; //抛出异常

如果相应的 Session 对象为空,就说明正在操作的用户不具备管理权限,则应该跳转到 login.aspx页面进行重新进行登录操作 7.4.2 身份验证页面 上述代码使用了 ADO.NET 中的数据对象进行数据操作,其操作和登录控件一样,在数据库中查询 相应的信息,如果查询的结果大于 0 则说明该查询在数据库中是有效的,也就是说存在这样一个管理员能够进行登录,而如果查询的结果小于 0 则说明不存在相应的管理员。 在管理页面的各个页面都需要进行用户身份判断,当管理员登录成功后,系统会配置一个 Session对象给用户,如果管理员操作超时或者操作者是一个非法用户,那么就没有 Session 对象。在各个页面 判断 Session 对象是否存在,就能够判断是否是合法的管理员,示例代码如下所示。 if (Session["admin"] == null) //如果不为管理员 { Response.Redirect("login.aspx"); //登录跳转 } 如果相应的 Session 对象为空,就说明正在操作的用户不具备管理权限,则应该跳转到 login.aspx页面进行重新进行登录操作

7.4.3 新闻发布页面 在新闻发布页面,管理员只需要在相应的字段进行新闻内容的填写,包括新闻的标题、内容、作者 等就能够进行新闻的发布。对于非静态生成的新闻发布而言,只需要进行数据的插入即可,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) { if (Session["admin"] == null) Response.Redirect("login.aspx"); } TextBox2.Text = DateTime.Now.ToString(); protected void Button1_Click(object sender, EventArgs e) try SqlConnection con = new SqlConnection("Data Source=(local); Initial Catalog=news;Integrated Security=True"); con.Open(); //如果不为管理员   //登录跳转 //初始化字段 //创建连接 //打开连接 string strsql = "insert into news (title,time,author,content,weather,level,hits,classname) values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox5.Text + "','" + TextBox4.Text + "','" + DropDownList1.Text + "',0,'" + DropDownList2.Text + "')"; //SQL 语句 SqlCommand cmd = new SqlCommand(strsql, con); //创建 Command cmd.ExecuteNonQuery(); //执行 SQL 语句 Response.Redirect("manage.aspx"); //页面跳转 } catch(Exception ee) { Response.Write(ee.ToString()); //抛出异常 新闻发布页面只需要执行相应的 SQL 语句进行数据插入即可,如果新闻发布只需要进行动态读取, 那么只需要进行静态插入新闻即可,而不需要进行模板解析操作;如果需要生成静态页面,那么就需要进行模板编写再生成纯静态页面。

7.4.4 静态生成功能 静态生成听上去非常的复杂,但是其实静态生成非常的简单。当管理员发布一条新闻,就会在数据 库中插入数据,数据插入后就应该解析模板进行静态生成。静态生成的是一个文件,这个文件可以是一个.html 文件或者.shtml 文件。在生成文件之前,可以运行以下代码,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) string str = "<b>*title*</b>"; string database = "新闻标题"; string output = str.Replace("*title*", database); Response.Write(output); } //判断加载 //模板代码 //数据库字段 //替换操作 //输出字符串 上述代码简单的定义了一个模板代码,其中 str 变量被定义为标签,database 变量被定义为新闻标题, 当需要生成静态时,可以将模板中代码的关键字进行替换,例如这里的*title*替换成为 database 变量中 的标签,替换完成后输出替换后的字符串生成即可。在模板代码中,模板代码如下所示。 string str = "<b>*title*</b>"; *title*是定义的标签,用于替换关键字,可替换新闻标题

7.4.4 静态生成功能 在了解了静态 生成的原理之后,就能够使用模板解析进行静态生成,示例代码如下所示。 7.4.4 静态生成功能 在了解了静态 生成的原理之后,就能够使用模板解析进行静态生成,示例代码如下所示。 protected void Button1_Click(object sender, EventArgs e) { try SqlConnection con = new SqlConnection("Data Source=(local); Initial Catalog=news;Integrated Security=True"); con.Open(); //创建连接 //打开连接 string strsql = "insert into news (title,time,author,content,weather,level,hits,classname) values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox5.Text + "','" + TextBox4.Text + "','" + DropDownList1.Text + "',0,'" + DropDownList2.Text + "')"; //SQL 语句 SqlCommand cmd = new SqlCommand(strsql, con); //创建执行对象 cmd.ExecuteNonQuery(); //执行 SQL StreamReader aw = File.OpenText(Server.MapPath("template.htm")); //打开模板 string template = aw.ReadToEnd(); //读取模板 aw.Close(); //关闭对象 template = template.Replace("[新闻标题]", TextBox1.Text); //替换标签 template = template.Replace("[发布时间]", TextBox2.Text); //替换标签 template = template.Replace("[新闻作者]", TextBox3.Text); //替换标签 template = template.Replace("[新闻天气]", TextBox4.Text); //替换标签 template = template.Replace("[新闻内容]", TextBox5.Text); //替换标签 StreamWriter sw = File.CreateText(Server.MapPath("../html/" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Second.ToString() + ".htm")); //生成文件 sw.Write(template); //编写内容 sw.Close(); //关闭对象 Response.Redirect("manage.aspx"); //页面跳转 } catch(Exception ee) Response.Write(ee.ToString()); //抛出异常 }

7.4.4 静态生成功能 上述代码首先使用 ADO.NET 进行数据插入操作,在数据操作成功后,就进行静态生成。静态生成的模板为 template.htm,通过编写 template.htm 文件能够为静态文件编辑相应的模板。在模板读取之后, 系统会将一些关键字进行替换 。 在使用 File 类之前,需要使用 System.IO 命名空间,以提供对文件的读取操作。当读取模板并替换了关键字符串之后,就能够通过 File 类的 CreateText 进行文件的存储,示例代码如下所示。 StreamWriter sw = File.CreateText(Server.MapPath("../html/" + DateTime.Now.ToString() + ".htm")); sw.Write(template); //编写内容 sw.Close(); //关闭对象 上述代码生成了一个以时间为文件名的 htm 静态文件,当文件生成后,就会保存在 html 文件夹中。在编写静态标签时,需要注意的是就是静态标签应该比较复杂。在制作模板时,尽量使用一些符号进行标签规则,例如标题可以编写成为{$title$}或者[*title*]等,就不会与现有的字符串中的字符进行冲突,替换了不该替换的字符串。

7.4.5 新闻显示页面 新闻显示页面的作用在于显示新闻,当用户单击一条新闻时就会跳转到新闻显示页面。新闻显示页面可以使用 CSS 和 HTML 布局,新闻显示页面的设计能够提高用户体验、吸引用户。 代码编写了一个 articles.aspx 文件,当用户访问新闻时,会打开该文件并通过参数获取新闻的值,然后将值填充到 Label 等控件中。如图所示。

7.4.5 新闻显示页面 在参数获取和填充的过程可以在 Page_Load 方法中编写相应代码,示例代码如下所示。 7.4.5 新闻显示页面 在参数获取和填充的过程可以在 Page_Load 方法中编写相应代码,示例代码如下所示。 protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["id"] != "") SqlConnection con = new SqlConnection("Data Source=(local); Initial Catalog=news;Integrated Security=True"); con.Open(); //创建连接 //打开连接 string strsql = "select * from news where id = '" + Request.QueryString["id"] + "'"; //查询数据 SqlDataAdapter da = new SqlDataAdapter(strsql, con); DataSet ds = new DataSet(); int count = da.Fill(ds, "table"); if (count > 0) { Label1.Text = ds.Tables["table"].Rows[0]["title"].ToString(); Label2.Text = ds.Tables["table"].Rows[0]["content"].ToString(); Label3.Text = ds.Tables["table"].Rows[0]["author"].ToString(); Label4.Text = ds.Tables["table"].Rows[0]["time"].ToString(); } else Response.Redirect("default.aspx"); //填充数据 //填充控件   //页面跳转 新闻显示页面的 HTML 代码使用了 Label 控件进行页面文字的呈现,当用户打开页面时,会通过传 递过来的 id 参数进行数据查询。如果数据查询成功,就会填充到相应的控件中,如上述代码所示,填充 后就会显示相应的文本给用户,用户就能够看到新闻。

7.4.6 静态模版编写 如果新闻模块不需要静态生成,那么就可以通过 id 参数进行 articles.aspx 页面的访问,例如可以通过 articles.aspx?id=1 这样规则的地址进行访问。但是动态的访问不仅数据访问量大,还不能很好的被搜索引擎搜录,如果选择新闻模块要生成静态,就需要编写相应的模板。 由于新闻模块在添加新闻时就需要生成静态文件,其静态文件的模板读取的是 template.htm,所以编写 template.htm 的HTML代码就能够编写模板文件。 代码编写了模板文件,其中[新闻标题]、[新闻作者]等都是模板标签。当生成静态文件时,系统会根据标签替换数据库中的数据。当用户单击新闻列表的时候,就可以跳转到相应的静态文件进行静态访问而无需动态读取文件,这样就能够快速的提高读取效率并降低服务器压力。

使用新闻模块能够快速的发布新闻和显示新闻,如果新闻模块选择生成静态,那么就需要对模板进行编写和解析,管理员可以在后台快速的进行新闻发布,前台就能够显示相应的新闻。在发布新闻之前,首先需要进行登录,如图所示。

登录完成后,就能够跳转到后台框架集,后台框架集为管理员提供了遍历的操作,如左图和右图所示,其中侧边是导航栏,右边大块的区域是工作区。

框架集能够让管理员方便的进行导航和功能操作,管理员可以在侧边栏中点击相应的菜单,例如单击【添加新闻】和【添加分类】选项进行相应页面的跳转。如果管理员单击的是【添加新闻】选项,则 在主工作区就能够呈现新闻添加页面;如果管理员单击的是【添加分类】选项,则主工作区就会呈现添 加分类页面,而对其他的页面丝毫不会造成影响。单击【添加分类】按钮,首先要为系统添加一个分类, 如图所示。

分类添加完成后才能够添加新闻,如果在添加新闻之前已经有了相关分类,则没有必要再行添加, 如果没有则必须添加分类。在添加分类后就能够添加新闻,这里使用了生成静态的方法生成了静态文件, 虽然生成了静态文件,但是同样可以通过参数进行新闻数据的访问。添加新闻和管理新闻操作如图所示。

在添加完成后,就能够进行新闻的管理,新闻管理能够修改和删除新闻,修改和删除新闻都能够进行新闻模块中新闻数据的更改。当新闻被修改后,在前台所呈现的新闻样式也不同,当新闻被删除时,当用户访问该新闻则会跳转到首页。 新闻添加后,会在 html 文件夹中生成相应的静态文件,通过访问静态文件可以极大的减少服务器的压力,但是会增加服务器的 IO 读写负担,生成静态文件后同样可以通过参数的方式进行数据的访问。 在 articles.aspx 文件中,通过传递的 id 参数进行数据查询和显示,虽然有些情况下需要进行数据库的操作,但是从另一方面来说减少了 IO 负担,如图所示。

动态访问新闻要从数据库中读取数据,而静态访问不需要,新闻模块将静态数据文件存放在 html文件夹中,访问 html 文件夹中的静态文件就能够访问相应的新闻,如图所示。 如图中的地址栏所示,用户访问的是一个.htm 页面而不是.aspx 页面,这说明系统已经将数 据进行替换并生成在 html 文件中,当用户访问相应的静态文件就能够访问相应的页面和数据而无需从 数据中进行读取。