《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 基于原子构件的友情链接设计
基于原子构件的友情链接设计
来源:微型机与应用2011年第11期
吴 洲
(广东松山职业技术学院 计算机系,广东 韶关 512126)
摘要: 友情链接是Web应用程序中最基本的功能,在自己的网站上放置对方网站的LOGO图片或文字的网站名称,点击后切换或弹出另一个新的页面。本构件通过类代码实现,设计的基本思路是:将友情链接数据存储在数据库中,从数据库中读取数据绑定至Panel控件,也可向数据库添加友情链接数据,可以方便地在网站中设计友情链接。
Abstract:
Key words :

摘  要: 友情鏈接是Web應(yīng)用程序中最基本的功能,在自己的網(wǎng)站上放置對方網(wǎng)站的LOGO圖片或文字的網(wǎng)站名稱,點(diǎn)擊后切換或彈出另一個(gè)新的頁面。本構(gòu)件通過類代碼實(shí)現(xiàn),設(shè)計(jì)的基本思路是:將友情鏈接數(shù)據(jù)存儲在數(shù)據(jù)庫中,從數(shù)據(jù)庫中讀取數(shù)據(jù)綁定至Panel控件,也可向數(shù)據(jù)庫添加友情鏈接數(shù)據(jù),可以方便地在網(wǎng)站中設(shè)計(jì)友情鏈接。
關(guān)鍵詞: 原子構(gòu)件;友情鏈接;類代碼;數(shù)據(jù)綁定

 友情鏈接是網(wǎng)站常見的鏈入鏈出功能,有更多相關(guān)性的友情鏈接容易被搜索引擎認(rèn)為是網(wǎng)站重要程度的體現(xiàn),是被搜索引擎收錄和排名靠前的重要依據(jù)。友情鏈接,也稱為網(wǎng)站交換鏈接、互惠鏈接、互換鏈接、聯(lián)盟鏈接等,是具有一定資源互補(bǔ)優(yōu)勢的網(wǎng)站之間的簡單合作形式。即分別在自己的網(wǎng)站上放置對方網(wǎng)站的LOGO圖片或文字的網(wǎng)站名稱,并設(shè)置對方網(wǎng)站的超鏈接(點(diǎn)擊后,切換或彈出另一個(gè)新的頁面),使得用戶可以從合作網(wǎng)站中發(fā)現(xiàn)自己的網(wǎng)站,達(dá)到互相推廣的目的,因此常作為一種網(wǎng)站推廣基本手段。友情鏈接是Web應(yīng)用程序中一個(gè)最基本的功能,友情鏈接構(gòu)件的功能就是為了實(shí)現(xiàn)動態(tài)顯示友情鏈接數(shù)據(jù)而設(shè)計(jì)的。本構(gòu)件通過類代碼實(shí)現(xiàn),設(shè)計(jì)的基本思路是:將友情鏈接數(shù)據(jù)存儲在數(shù)據(jù)庫中,從數(shù)據(jù)庫中讀取數(shù)據(jù)綁定至Panel控件,也可向數(shù)據(jù)庫添加友情鏈接數(shù)據(jù),可以方便地在網(wǎng)站中設(shè)計(jì)友情鏈接。
1 原子構(gòu)件的開發(fā)設(shè)計(jì)
1.1 準(zhǔn)備測試數(shù)據(jù)庫

 為了說明友情鏈接構(gòu)件的使用,程序至少需要一個(gè)測試數(shù)據(jù)庫。要求該數(shù)據(jù)庫至少有一個(gè)用于存放友情鏈接信息的數(shù)據(jù)表,在已有數(shù)據(jù)庫T_LinkData.mdf添加數(shù)據(jù)表即可。
 (1)在數(shù)據(jù)庫T_LinkData.mdf中創(chuàng)建一個(gè)名為“T_link”數(shù)據(jù)表。
 (2)在數(shù)據(jù)表T_link中,創(chuàng)建:名稱、網(wǎng)址、類別等字段,數(shù)據(jù)庫表T_link的結(jié)構(gòu)如圖1所示。

 (3)為了便于測試,事先添加若干條記錄。
1.2 設(shè)計(jì)原子構(gòu)件
 (1)啟動VS2005(或VS2008),新建一個(gè)網(wǎng)站,名稱為“導(dǎo)航構(gòu)件”,在當(dāng)前項(xiàng)目中將默認(rèn)的Web窗體Default.aspx更改為friendlink.aspx。
 (2)選擇“解決方案資源管理器”中的“App_Data”,右擊,在出現(xiàn)的快捷菜單中選擇“添加現(xiàn)有項(xiàng)”,將上一步驟中準(zhǔn)備的數(shù)據(jù)庫添加到當(dāng)前項(xiàng)目的“App_Data”目錄下。
 (3)在項(xiàng)目中新建一個(gè)“DataBase”類,該類的功能從數(shù)據(jù)庫中讀取數(shù)據(jù)。
 (4)進(jìn)入類代碼視圖,在代碼視圖的最前面輸入代碼using System.Data.SqlClient,導(dǎo)入命名空間,此命名空間主要與數(shù)據(jù)庫操作有關(guān)。
 (5)在DataBase類中添加方法GetDataFromDB(),該方法的功能為公共查詢,對傳遞過來的查詢字符串,如果查詢成功則返回符合查詢條件的記錄構(gòu)成的數(shù)據(jù)表,否則返回空;添加方法UpdateDB(),用于對數(shù)據(jù)進(jìn)行添加、修改和刪除操作。
 (6)在項(xiàng)目中新建一個(gè)“GetSetdata”類。在該類中添加方法GetData(),功能在控件Panel中創(chuàng)建友情鏈接;添加方法SetData(),功能為增加友情鏈接數(shù)據(jù)。
2 關(guān)鍵技術(shù)
 (1)公共數(shù)據(jù)操作方法
public bool UpdateDB(string sqlstr)
    {
        SqlConnection sqlconn = new SqlConnection(connstr);//建立數(shù)據(jù)庫連接對象
        try
        {
SqlCommand cmdTable = new SqlCommand(sqlstr, sqlconn);
    //實(shí)例執(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;
      //設(shè)置用于打開數(shù)據(jù)庫的字符串
dataAdapter = new SqlDataAdapter(sqlStr, dataConnection);
      //將成員數(shù)據(jù)適配器對象實(shí)例化
           dataset.Clear();
           dataAdapter.Fill(dataset);//填充數(shù)據(jù)集對象
           dataConnection.Close();//關(guān)閉數(shù)據(jù)的連接
        }
        catch (Exception ex)
        {
            dataConnection.Close();
        }
        if (dataset.Tables[0].Rows.Count != 0)
//如果記錄不為空,則返回符合條件記錄構(gòu)成的數(shù)據(jù)表
            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();
      //實(shí)例化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)增加友情鏈接數(shù)據(jù)的方法
 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 實(shí)現(xiàn)方案
 (1)進(jìn)入friendlink.aspx的設(shè)計(jì)頁面。
 (2)在事件處理代碼頁面,在Page_Load事件中添加代碼如下:
string s1 = "<br>";
     //顯示一列,如果顯示一行s1 = " "
        GetSetdata gs = new GetSetdata();
     //實(shí)例化GetSetdata類的對象
        this.Controls.Add(gs.GetData(s1));
     //將Panel添加到Web窗體
 (3)運(yùn)行friendlink.aspx頁面,運(yùn)行效果如圖2所示。

 (4)本例中友情鏈接使用HtmlAnchor控件(在方法GetData()),請讀者自己設(shè)計(jì)使用HyperLink控件完成友情鏈接。
 此構(gòu)件通過類代碼實(shí)現(xiàn),將友情鏈接數(shù)據(jù)存儲在數(shù)據(jù)庫中,從數(shù)據(jù)庫中讀取數(shù)據(jù)綁定至Panel控件,可以方便地在網(wǎng)站中設(shè)計(jì)友情鏈接。
參考文獻(xiàn)
[1] 吳兆立.基于ASP技術(shù)的學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(9).
[2] 許賓,胡勇輝,凌志勇.ASP.NET2.0(C#)應(yīng)用開發(fā)技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社,2008.
[3] 耿肇英等.C#應(yīng)用程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2008.
[4] 李林靜,葉冬芬,蔣曉丹.數(shù)據(jù)綁定與導(dǎo)航在Visual C#.Net下的實(shí)現(xiàn)及應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(12).
[5] 田珍,游智.基于.NET的網(wǎng)絡(luò)輔助教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2006(18).
[6] 王強(qiáng).用ASP設(shè)計(jì)自動友情鏈接系統(tǒng)[J].計(jì)算機(jī)與現(xiàn)代化,2004(8).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容