简单三层使用Repeater控件循环实现QQ在线效果

本文详细介绍了如何使用三层架构设计一个系统,该系统可以将QQ号码与在线代码进行关联,并通过HTML标签展示出来。主要内容包括前端代码实现、数据库设计、三层代码结构以及业务逻辑处理。

作者:Mr.XQIJIANG

出处: http://www.cnblogs.com/Mr-XQIJIANG/本文版权归【Mr.XQIJIANG】所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

 


 数据库:

表1: Qid                   Qnumber             Hid
           自动编号          QQ号码              表2ID
表2: Hid              HtmlUrl
          自动编号     QQ在线代码
(QQ号码换成“  *  ”之后保存到表2HtmlUrl字段里面)
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=QQ号码&site=qq&menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:QQ号码:47" alt="点击这里给我发消息" title="点击这里给我发消息"></a>

开始写前台代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<style type="text/css">
.style1
{
width: 500px;
border-left-style: solid;
border-left-width: 1px;
border-right: 1px solid #C0C0C0;
border-top-style: solid;
border-top-width: 1px;
border-bottom: 1px solid #C0C0C0;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>

<table align="center" cellpadding="0" cellspacing="3" class="style1">
<tr>
<td align="center">
自动编号</td>
<td align="center">
效果展示</td>
</tr>
<asp:Repeater ID="repeater1" runat="server">
<ItemTemplate>
<tr>

<td align="center">
<%#Eval("Qid") %></td>
<td align="center">
<%# Convert.ToString(Eval("Hname.Hname")).Replace("*", Convert.ToString(Eval("Qname")))%></td>

</tr>
</ItemTemplate>
</asp:Repeater>
</table>

</div>
</form>
</body>
</html>

后台代码:

protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Show();
}
}

private void Show()
{
bllQinfo bll = new bllQinfo();

List<modQinfo> mods = bll.GetAll();

this.repeater1.DataSource = mods;

this.repeater1.DataBind();
}

三层代码:

model模型层:

 

-----------------表1----------------------

public class modQinfo
{
private int _qid;

public int Qid
{
get { return _qid; }
set { _qid = value; }
}
private int _qname;

public int Qname
{
get { return _qname; }
set { _qname = value; }
}
private int _hid;

public int Hid
{
get { return _hid; }
set { _hid = value; }
}
private modHhtml hname;

public modHhtml Hname
{
get { return hname; }
set { hname = value; }
}
}

 

---------------表2-----------------

public class modHhtml
{
private int _hid;

public int Hid
{
get { return _hid; }
set { _hid = value; }
}
private string _hname;

public string Hname
{
get { return _hname; }
set { _hname = value; }
}
}

 

DAL数据访问层:

---------表1------------

public List<modQinfo> GetAll()
{
string sql = "select * from Qinfo";

DBHelp db = new DBHelp();

DataSet objset = db.GetDataSet(sql);

dalHinfo dal = new dalHinfo();

List<modQinfo> mods = new List<modQinfo>();

foreach (DataRow dr in objset.Tables[0].Rows)
{
modQinfo mod = new modQinfo();

mod.Qid = Int32.Parse(dr["Qid"].ToString());

mod.Qname = Int32.Parse(dr["Qname"].ToString());

mod.Hid = Int32.Parse(dr["Hid"].ToString());

mod.Hname = dal.getHid(mod.Hid);

mods.Add(mod);
}

return mods;

}

-------------表2---------------

public modHhtml getHid(int hid)
{
string sql = "select * from Hhtml where hid=" + hid;

modHhtml mod = new modHhtml();

DBHelp db = new DBHelp();

DataSet objset = db.GetDataSet(sql);

foreach (DataRow dr in objset.Tables[0].Rows)
{
mod.Hid = Int32.Parse(dr["Hid"].ToString());

mod.Hname = dr["Hname"].ToString();
}

return mod;
}

 

BLL业务逻辑层:

-----------表1-------------

dalQinfo dal = new dalQinfo();

public List<modQinfo> GetAll()
{
return dal.GetAll();
}

----------表2-------------

dalHinfo dal = new dalHinfo();

public modHhtml getHid(int hid)
{
return dal.getHid(hid);
}

转载于:https://www.cnblogs.com/Mr-XQIJIANG/archive/2012/01/09/2317288.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值