如表1所示,关联性规则推荐表的后两个字段是项集,P1作为前台推荐程序的输入参数,P2是与之关联的项,是可能的输出结果,根据概率和重要性两个指标选择满足条件的记录,推荐程序部分节选如下:
string SQL="select distinct top 10 * from Association where
p1='"+ this.Lbl_filmname.Text.Trim()+"'order by probability desc";
……
if (MyRead.HasRows)
{while(MyRead.Read())
{myhyperlink[i].Text=MyRead.GetString(3).Trim();
myhyperlink[i].Visible=true;
}
}
else
{this.Label1.Text="暂无推荐影片";
this.Label1.Visible=true;
}
前台点播页面
我们的研究目的是为了将历史数据用于系统优化,将上一步生成的关联规则表应用于点播系统,为用户提供更好的点播体验。主页面设置新闻公告、最近资源、热门排行等主要模块,按模块化设计思路,每个模块都是一个用户自定义控件,能够在不同页面重复使用。比如创建一个hotfilm.ascx用户自定义控件,实现热门电影排行,程序如下:
SQL="select top 10 * from ProgInfo where Subject='"+this.
Request["fl"].ToString().Trim()+"'order by ClickCount desc";
using (MyConn = new System.Data.SqlClient.SqlConnection
(System.Configuration.ConfigurationSettings.AppSettings["Data"])) {
using (MyCmd = new System.Data.SqlClient.SqlCommand(SQL,
MyConn))
{
MyConn.Open();
using(MyRead=MyCmd.ExecuteReader())
{
while(MyRead.Read())
{TableRow tr = new TableRow();
TableCell tc = new TableCell();
tc.HorizontalAlign = HorizontalAlign.Left;
tc.Controls.Add(new LiteralControl("<ahref='filminfo.aspx?
id="+MyRead.GetString(0).Trim()+"'target='_blank'>"+
MyRead.GetString(1).Trim()+"</a>"));
tr.Cells.Add(tc);
tr.Height=20;
Tbl_list.Rows.Add(tr);
}
}
}
}
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。