生成静态页面
时间:2010-10-10 来源:张静静
生成静态页面适用于服务器空间比较大的网站。不适用于服务器访问空间小,访问量小的网站,总之要根据实际情况去判断是否需要。或者根据用户的需求。
我们在此举的例子是一个简单的新闻的添加。
首先需要在实体类中去封装字段,这个就不在这里说明了,下面的是在数据访问层的方法的实现:
//获取helper的数据库类型。
IHelper helper = ManageFactory.Factory.GetHelper;
//添加新闻方法
public int Insert(IProvider provider,Data.News dn )
{
string sql = "insert into news(newstitle,newscontent,newsdate,newsfilepath) values(@newstitle,@newscontent,@newsdate,@newsfilepath)";
List<IDbDataParameter> listp = new List<IDbDataParameter>();
listp.Add(helper.CreateParameter("@newstitle",dn.Newstitle));
listp.Add(helper.CreateParameter("@newscontent", dn.Newscontent));
listp.Add(helper.CreateParameter("@newsdate", dn.Newsdate));
listp.Add(helper.CreateParameter("@newsfilepath", dn.Newsfilepath));
return helper.ExecuteNonQuery(provider,sql,listp);
}
//获得自动生成的id.
public string SelectId(IProvider provider)
{
string sql = "select @@identity news";
return helper.ExecuteScalar(provider,sql,null).ToString();
}
//获取前前几条记录方法
public DataTable Select(IProvider provider, int count)
{
string sql = "select top "+count+" * from news";
DataTable dt = new DataTable();
dt = helper.ExecuteDataTable(provider,sql,null);
return dt;
}
接下来就是在业务层对于数据访问层方法的具体调用了:
//添加新闻方法
public static int AddNews(string title,string content,string date)
{
//把文件名定义为时间加上.html格式
string filename = DateTime.Now.ToString("yyMMddmmss")+".html";
Data.News news = new Base.Data.News();
news.Newstitle = title;
news.Newscontent = content;
news.Newsdate = date;
news.Newsfilepath = filename;
int i = 0;
string id = "";
using (IProvider provider = ManageFactory.Factory.GetProvider)
{
DAL.OpNews opn = new Base.DAL.OpNews();
i= opn.Insert(provider, news);
//获取新闻id值
id = opn.SelectId(provider);
}
//根据id生成静态页面
// CreateFile(title, content, date, id);
//根据时间生成静态页面
CreateFile(title, content, date, filename); return i;
}
public static void CreateFile(string title,string content,string date,string filename)
{
//得到静态页面的物理路径Aritcle.html页面为都通用的页面只需要改变里面的少数内容相当于母版页
string path = HttpContext.Current.Server.MapPath("Template/Aritcle.html");
//根据刚才得到的文件路径读取文件的内容,保存为字符串格式
string openfile = File.ReadAllText(path,Encoding.UTF8);
//用我们得到的内容区替换文件中的{Title}内容
string str = openfile.Replace("{Title}",title);
str = str.Replace("{Content}",content);
str = str.Replace("{Date}",date);
//根据id生成静态页面
//string createpath = HttpContext.Current.Server.MapPath("Article")+"
我们在此举的例子是一个简单的新闻的添加。
首先需要在实体类中去封装字段,这个就不在这里说明了,下面的是在数据访问层的方法的实现:
//获取helper的数据库类型。
IHelper helper = ManageFactory.Factory.GetHelper;
//添加新闻方法
public int Insert(IProvider provider,Data.News dn )
{
string sql = "insert into news(newstitle,newscontent,newsdate,newsfilepath) values(@newstitle,@newscontent,@newsdate,@newsfilepath)";
List<IDbDataParameter> listp = new List<IDbDataParameter>();
listp.Add(helper.CreateParameter("@newstitle",dn.Newstitle));
listp.Add(helper.CreateParameter("@newscontent", dn.Newscontent));
listp.Add(helper.CreateParameter("@newsdate", dn.Newsdate));
listp.Add(helper.CreateParameter("@newsfilepath", dn.Newsfilepath));
return helper.ExecuteNonQuery(provider,sql,listp);
}
//获得自动生成的id.
public string SelectId(IProvider provider)
{
string sql = "select @@identity news";
return helper.ExecuteScalar(provider,sql,null).ToString();
}
//获取前前几条记录方法
public DataTable Select(IProvider provider, int count)
{
string sql = "select top "+count+" * from news";
DataTable dt = new DataTable();
dt = helper.ExecuteDataTable(provider,sql,null);
return dt;
}
接下来就是在业务层对于数据访问层方法的具体调用了:
//添加新闻方法
public static int AddNews(string title,string content,string date)
{
//把文件名定义为时间加上.html格式
string filename = DateTime.Now.ToString("yyMMddmmss")+".html";
Data.News news = new Base.Data.News();
news.Newstitle = title;
news.Newscontent = content;
news.Newsdate = date;
news.Newsfilepath = filename;
int i = 0;
string id = "";
using (IProvider provider = ManageFactory.Factory.GetProvider)
{
DAL.OpNews opn = new Base.DAL.OpNews();
i= opn.Insert(provider, news);
//获取新闻id值
id = opn.SelectId(provider);
}
//根据id生成静态页面
// CreateFile(title, content, date, id);
//根据时间生成静态页面
CreateFile(title, content, date, filename); return i;
}
public static void CreateFile(string title,string content,string date,string filename)
{
//得到静态页面的物理路径Aritcle.html页面为都通用的页面只需要改变里面的少数内容相当于母版页
string path = HttpContext.Current.Server.MapPath("Template/Aritcle.html");
//根据刚才得到的文件路径读取文件的内容,保存为字符串格式
string openfile = File.ReadAllText(path,Encoding.UTF8);
//用我们得到的内容区替换文件中的{Title}内容
string str = openfile.Replace("{Title}",title);
str = str.Replace("{Content}",content);
str = str.Replace("{Date}",date);
//根据id生成静态页面
//string createpath = HttpContext.Current.Server.MapPath("Article")+"
相关阅读 更多 +