首页 新闻 会员 周边

三层中的数据访问问题

0
悬赏园豆:10 [已解决问题] 解决于 2011-01-04 16:32

三层结构中我分了Model、DAL、BLL、UI几部分,在DAL中应该如何写获取数据集合的方法?

在UI中的CS文件中要将获取的数据集绑定到repeater上,在写repeater的databound方法中要像以下

这样:

((Label)e.Item.FindControl("usernamelab")).Text =XXX.UserName.ToString();

求详细解答,谢谢!!!

01之间穿梭的主页 01之间穿梭 | 初学一级 | 园豆:25
提问于:2010-11-23 23:05
< >
分享
最佳答案
0

我是想写UI层的同志不用指导数据库字段,只知道实体中的属性就好了,代码都写在后台便于维护啊,一个地方可以搞定的久不要写到多个地方啊

----------------------------

那你就让它自动产生列好了,后台对列进行格式化就行了~

默认本来就是:AutoGenerateColumns="true"的。

需要不想前台控制,后台只要控制DataTable的Column的删除就可以去掉不需要显示的列。

在OnRowCommand里就可以对每一行的数据进行格式化。

收获园豆:5
路过秋天 | 老鸟四级 |园豆:4787 | 2010-11-24 10:18
其他回答(4)
0

你倒底是想问题如果绑定repeater,还是想问绑定repeater的item中的控件。

Astar | 园豆:40805 (高人七级) | 2010-11-24 06:26
如果没有使用三层的时候,我们一般是在cs文件中写一个返回数据集(ds)的方法,然后repeater1(repeater的ID).DataSourse = ds;接下来repeater1.DataBind(); 在repeater的ItemDataBound中将数据绑定到repeater中的控件上, 通常在ItemDataBound中的写法如下: ((Label)e.Item.FindControl("usernamelab")).Text=ds.Tables[0].Rows[e.Item.ItemIndex]["UserName"].ToString(); 我希望像下面这样: ((Label)e.Item.FindControl("usernamelab")).Text =XXX.UserName.ToString();
支持(0) 反对(0) 01之间穿梭 | 园豆:25 (初学一级) | 2010-11-24 08:52
@01之间穿梭:为什么用了三层就不能返回dt或ds了呢?或者你转换为list也可以。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-11-24 13:20
0

也不是什么高手,但是我现在的理解就是DAL获取到的是DataTable,然后在BLL里面用逻辑转换成你想要的Model或者是List<Model>这样子。。。

收获园豆:5
顾晓北 | 园豆:10844 (专家六级) | 2010-11-24 09:02
0

楼主为何不换种绑定的方法更为简洁:

后台只负责获取数据源并绑定

repeater1.DataSource = ds;

repeater1.DataBind();

 

 

前台负责数据显示

<asp:Repeater ID="repeater1" runat="server" EnableViewState="false">
      <ItemTemplate>
           <a><%#DataBinder.Eval(Container,"DataItem.字段") %></a>
       </ItemTemplate>
</asp:Repeater>
三桂 | 园豆:3565 (老鸟四级) | 2010-11-24 09:10
我是想写UI层的同志不用指导数据库字段,只知道实体中的属性就好了,代码都写在后台便于维护啊,一个地方可以搞定的久不要写到多个地方啊
支持(0) 反对(0) 01之间穿梭 | 园豆:25 (初学一级) | 2010-11-24 09:18
0

list<model> datatable dataset 什么的都可以吧

list[i].UserName.ToString();

datatable.rows[i]["UserName"].ToString();

dataset.tables[0].rows[i]["UserName"].ToString();

xiaos | 园豆:434 (菜鸟二级) | 2010-11-24 09:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册