摘 要: 友情链接是Web应用程序中最基本的功能,在自己的网站上放置对方网站的LOGO图片或文字的网站名称,点击后切换或弹出另一个新的页面。本构件通过类代码实现,设计的基本思路是:将友情链接数据存储在数据库中,从数据库中读取数据绑定至Panel控件,也可向数据库添加友情链接数据,可以方便地在网站中设计友情链接。
关键词: 原子构件;友情链接;类代码;数据绑定
友情链接是网站常见的链入链出功能,有更多相关性的友情链接容易被搜索引擎认为是网站重要程度的体现,是被搜索引擎收录和排名靠前的重要依据。友情链接,也称为网站交换链接、互惠链接、互换链接、联盟链接等,是具有一定资源互补优势的网站之间的简单合作形式。即分别在自己的网站上放置对方网站的LOGO图片或文字的网站名称,并设置对方网站的超链接(点击后,切换或弹出另一个新的页面),使得用户可以从合作网站中发现自己的网站,达到互相推广的目的,因此常作为一种网站推广基本手段。友情链接是Web应用程序中一个最基本的功能,友情链接构件的功能就是为了实现动态显示友情链接数据而设计的。本构件通过类代码实现,设计的基本思路是:将友情链接数据存储在数据库中,从数据库中读取数据绑定至Panel控件,也可向数据库添加友情链接数据,可以方便地在网站中设计友情链接。
1 原子构件的开发设计
1.1 准备测试数据库
为了说明友情链接构件的使用,程序至少需要一个测试数据库。要求该数据库至少有一个用于存放友情链接信息的数据表,在已有数据库T_LinkData.mdf添加数据表即可。
(1)在数据库T_LinkData.mdf中创建一个名为“T_link”数据表。
(2)在数据表T_link中,创建:名称、网址、类别等字段,数据库表T_link的结构如图1所示。
(3)为了便于测试,事先添加若干条记录。
1.2 设计原子构件
(1)启动VS2005(或VS2008),新建一个网站,名称为“导航构件”,在当前项目中将默认的Web窗体Default.aspx更改为friendlink.aspx。
(2)选择“解决方案资源管理器”中的“App_Data”,右击,在出现的快捷菜单中选择“添加现有项”,将上一步骤中准备的数据库添加到当前项目的“App_Data”目录下。
(3)在项目中新建一个“DataBase”类,该类的功能从数据库中读取数据。
(4)进入类代码视图,在代码视图的最前面输入代码using System.Data.SqlClient,导入命名空间,此命名空间主要与数据库操作有关。
(5)在DataBase类中添加方法GetDataFromDB(),该方法的功能为公共查询,对传递过来的查询字符串,如果查询成功则返回符合查询条件的记录构成的数据表,否则返回空;添加方法UpdateDB(),用于对数据进行添加、修改和删除操作。
(6)在项目中新建一个“GetSetdata”类。在该类中添加方法GetData(),功能在控件Panel中创建友情链接;添加方法SetData(),功能为增加友情链接数据。
2 关键技术
(1)公共数据操作方法
public bool UpdateDB(string sqlstr)
{
SqlConnection sqlconn = new SqlConnection(connstr);//建立数据库连接对象
try
{
SqlCommand cmdTable = new SqlCommand(sqlstr, sqlconn);
//实例执行SQL语句的对象
cmdTable.CommandType = CommandType.Text;
//指定如何解释命令字符串
sqlconn.Open();//打开连接
cmdTable.ExecuteNonQuery();//执行SQL语句
return true;
}
catch (Exception ex)
{
sqlconn.Close();
return false;
}
}
(2)公共查询方法
public DataTable GetDataFromDB(string sqlStr)//
{
try
{
dataConnection.ConnectionString = connstr;
//设置用于打开数据库的字符串
dataAdapter = new SqlDataAdapter(sqlStr, dataConnection);
//将成员数据适配器对象实例化
dataset.Clear();
dataAdapter.Fill(dataset);//填充数据集对象
dataConnection.Close();//关闭数据的连接
}
catch (Exception ex)
{
dataConnection.Close();
}
if (dataset.Tables[0].Rows.Count != 0)
//如果记录不为空,则返回符合条件记录构成的数据表
return dataset.Tables [0];
else
return null;
}
(3)在控件Panel中创建友情链接的方法
public Panel GetData(string s)
{
Panel Panel1 = new Panel();
Panel1 .Controls .Add (new LiteralControl ("友情链接"+"<br>"));
for (int i = 0; i < num; i++)
{
HtmlAnchor ha = new HtmlAnchor();
//实例化Html<a>元素
ha.InnerHtml = dt.Rows[i][0].ToString();
ha.HRef = dt.Rows[i][1].ToString();
ha.Target = "_blank";
Panel1.Controls.Add(ha);
//将超链接添加到Panel
Panel1.Controls.Add(new LiteralControl(s));
}
return Panel1;
}
(4)增加友情链接数据的方法
public string SetData(string s1,string s2,string s3)
{
string sqlstr,s;
sqlstr = "insert into T_link values ("+s1+"," +s2+","+s3+")";
DataBase db = new DataBase();
bool t = db.UpdateDB(sqlstr);
if (t == true)
s = "添加成功";
else
s = "添加失败";
return s;
}
3 实现方案
(1)进入friendlink.aspx的设计页面。
(2)在事件处理代码页面,在Page_Load事件中添加代码如下:
string s1 = "<br>";
//显示一列,如果显示一行s1 = " "
GetSetdata gs = new GetSetdata();
//实例化GetSetdata类的对象
this.Controls.Add(gs.GetData(s1));
//将Panel添加到Web窗体
(3)运行friendlink.aspx页面,运行效果如图2所示。
(4)本例中友情链接使用HtmlAnchor控件(在方法GetData()),请读者自己设计使用HyperLink控件完成友情链接。
此构件通过类代码实现,将友情链接数据存储在数据库中,从数据库中读取数据绑定至Panel控件,可以方便地在网站中设计友情链接。
参考文献
[1] 吴兆立.基于ASP技术的学生信息管理系统的设计与实现[J].计算机技术与发展,2008,18(9).
[2] 许宾,胡勇辉,凌志勇.ASP.NET2.0(C#)应用开发技术与典型实例[M].北京:清华大学出版社,2008.
[3] 耿肇英等.C#应用程序设计教程[M].北京:人民邮电出版社,2008.
[4] 李林静,叶冬芬,蒋晓丹.数据绑定与导航在Visual C#.Net下的实现及应用[J].计算机系统应用,2008(12).
[5] 田珍,游智.基于.NET的网络辅助教学系统的设计与实现 [J].计算机工程与设计,2006(18).
[6] 王强.用ASP设计自动友情链接系统[J].计算机与现代化,2004(8).