摘 要: 友情鏈接是Web應用程序中最基本的功能,在自己的網站上放置對方網站的LOGO圖片或文字的網站名稱,點擊后切換或彈出另一個新的頁面。本構件通過類代碼實現,設計的基本思路是:將友情鏈接數據存儲在數據庫中,從數據庫中讀取數據綁定至Panel控件,也可向數據庫添加友情鏈接數據,可以方便地在網站中設計友情鏈接。
關鍵詞: 原子構件;友情鏈接;類代碼;數據綁定
友情鏈接是網站常見的鏈入鏈出功能,有更多相關性的友情鏈接容易被搜索引擎認為是網站重要程度的體現,是被搜索引擎收錄和排名靠前的重要依據。友情鏈接,也稱為網站交換鏈接、互惠鏈接、互換鏈接、聯(lián)盟鏈接等,是具有一定資源互補優(yōu)勢的網站之間的簡單合作形式。即分別在自己的網站上放置對方網站的LOGO圖片或文字的網站名稱,并設置對方網站的超鏈接(點擊后,切換或彈出另一個新的頁面),使得用戶可以從合作網站中發(fā)現自己的網站,達到互相推廣的目的,因此常作為一種網站推廣基本手段。友情鏈接是Web應用程序中一個最基本的功能,友情鏈接構件的功能就是為了實現動態(tài)顯示友情鏈接數據而設計的。本構件通過類代碼實現,設計的基本思路是:將友情鏈接數據存儲在數據庫中,從數據庫中讀取數據綁定至Panel控件,也可向數據庫添加友情鏈接數據,可以方便地在網站中設計友情鏈接。
1 原子構件的開發(fā)設計
1.1 準備測試數據庫
為了說明友情鏈接構件的使用,程序至少需要一個測試數據庫。要求該數據庫至少有一個用于存放友情鏈接信息的數據表,在已有數據庫T_LinkData.mdf添加數據表即可。
(1)在數據庫T_LinkData.mdf中創(chuàng)建一個名為“T_link”數據表。
(2)在數據表T_link中,創(chuàng)建:名稱、網址、類別等字段,數據庫表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中創(chuàng)建友情鏈接;添加方法SetData(),功能為增加友情鏈接數據。
2 關鍵技術
(1)公共數據操作方法
public bool UpdateDB(string sqlstr)
{
SqlConnection sqlconn = new SqlConnection(connstr);//建立數據庫連接對象
try
{
SqlCommand cmdTable = new SqlCommand(sqlstr, sqlconn);
//實例執(zhí)行SQL語句的對象
cmdTable.CommandType = CommandType.Text;
//指定如何解釋命令字符串
sqlconn.Open();//打開連接
cmdTable.ExecuteNonQuery();//執(zhí)行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中創(chuàng)建友情鏈接的方法
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技術的學生信息管理系統(tǒng)的設計與實現[J].計算機技術與發(fā)展,2008,18(9).
[2] 許賓,胡勇輝,凌志勇.ASP.NET2.0(C#)應用開發(fā)技術與典型實例[M].北京:清華大學出版社,2008.
[3] 耿肇英等.C#應用程序設計教程[M].北京:人民郵電出版社,2008.
[4] 李林靜,葉冬芬,蔣曉丹.數據綁定與導航在Visual C#.Net下的實現及應用[J].計算機系統(tǒng)應用,2008(12).
[5] 田珍,游智.基于.NET的網絡輔助教學系統(tǒng)的設計與實現 [J].計算機工程與設計,2006(18).
[6] 王強.用ASP設計自動友情鏈接系統(tǒng)[J].計算機與現代化,2004(8).
