积极答复者
文章的内容页面应该如何实现?

问题
-
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; public partial class Show : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!String.IsNullOrEmpty(Request.QueryString["id"]))//如果传来的id不为空 { int ReplyId = Int32.Parse(Request.QueryString["id"]); string sql = "SELECT * FROM content WHERE id = " + ReplyId + ""; SqlCommand cmd = new SqlCommand(); SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, null); if (reader.HasRows)//判断reader中是否有数据。 { while (reader.Read()) { Show_Id.InnerHtml = reader[0].ToString(); Show_Title.InnerHtml = reader[2].ToString(); Show_Content.InnerHtml = reader[3].ToString(); Show_Add_date.InnerHtml = reader[4].ToString(); } } else { //没有数据执行以下代码。 Show_Title.InnerHtml = "暂无内容!"; } } } }
1、就读一条信息还要用while (reader.Read())循环吗?有没有更高效率的呢?
2、我是通过Show_Id.InnerHtml给aspx页面中div传数据的,不知道大家都是怎么传如“文章标题”、“内容”、“添加时间”等信息呢?尤其是“内容”,因为要支持HTML代码还要安全。
请哪位给指点指点呀。先谢谢了。- 已编辑 hkstb 2009年12月21日 9:47 写错了。
答案
-
你好!你的这个界面是用于显示一篇文章,GridView 并不适合你。用你目前的方式就可以,DataReader 也是高效的一种方式,还想再高效一些可以考虑缓存(页面缓存,缓存API)或静态页面了。另外你的代码也有问题,使用 DataReader 后需要显示的调用 DataReader.Close(),最好使用 using 如下代码:
using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, null)) { if (reader.HasRows)//判断reader中是否有数据。 { while (reader.Read()) { Show_Id.InnerHtml = reader[0].ToString(); Show_Title.InnerHtml = reader[2].ToString(); Show_Content.InnerHtml = reader[3].ToString(); Show_Add_date.InnerHtml = reader[4].ToString(); } } else { Show_Title.InnerHtml = "暂无内容!"; } }
知识改变命运,奋斗成就人生!- 已标记为答案 hkstb 2009年12月22日 8:37
全部回复
-
你好!你的这个界面是用于显示一篇文章,GridView 并不适合你。用你目前的方式就可以,DataReader 也是高效的一种方式,还想再高效一些可以考虑缓存(页面缓存,缓存API)或静态页面了。另外你的代码也有问题,使用 DataReader 后需要显示的调用 DataReader.Close(),最好使用 using 如下代码:
using (SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, null)) { if (reader.HasRows)//判断reader中是否有数据。 { while (reader.Read()) { Show_Id.InnerHtml = reader[0].ToString(); Show_Title.InnerHtml = reader[2].ToString(); Show_Content.InnerHtml = reader[3].ToString(); Show_Add_date.InnerHtml = reader[4].ToString(); } } else { Show_Title.InnerHtml = "暂无内容!"; } }
知识改变命运,奋斗成就人生!- 已标记为答案 hkstb 2009年12月22日 8:37