如何绑定两个表的数据

zedan 2005-04-01 11:25:41
现在有两个表,是有关联的,比如说a表有id,name字段,b表有id,subid,subname字段,它们通过id关联,现a有数据 (id=1,name=动物) 和 (id=2,name=植物)
b有数据(id=1,name=猫,subid=01) (id=1,name=狗,subid=02) (id=2,name=杨树,subid=03)
(id=2,name=桃花,subid=04)
现在要从数据库中显示这两个表的内容,格式如下:
动物
猫 狗 //where id=1
植物
杨树 桃花
要用什么控件?DataGrid?DataList?还是什么?数据源要从两个表中的内容绑定,要怎样做??我试过用 外连接,但返回数据是这样的:
动物 猫
动物 狗
植物 杨树
植物 桃花

不知道我说的够不够明白,我要怎样绑定数据,望指教!
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zedan 2005-04-03
  • 打赏
  • 举报
回复
我的代码如下了,可是它只能显示出父表,而子表的数据显示不出来,但跟踪好象可以发现到有 ChildRelations {System.Data.DataRelationCollection.DataTableRelationCollection} System.Data.DataRelationCollection
为什么会这样,下面的代码那里出错了??????急啊!!!!

DataSet ds=new DataSet();
a.Fill(ds,"Category");
b.Fill(ds,"Type");
a.DataSource=ds.Tables["Category"];
a.DataBind();
ds.Relations.Add("myType",ds.Tables["Category"].Columns["CategoryID"],ds.Tables["Type"].Columns["CategoryID"]);



<asp:Repeater id="a" runat="server">
<ItemTemplate>
<b><%# DataBinder.Eval(Container.DataItem,"CategoryName") %></b>
<br>
<asp:Repeater id="b" runat="server"
DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myType") %>'>
<ItemTemplate>
<a href=books.aspx?TypeID=<%# DataBinder.Eval(Container.DataItem,"TypeID") %>><%# DataBinder.Eval(Container.DataItem,"TypeName") %></a>
</ItemTemplate></asp:Repeater></ItemTemplate></asp:Repeater>
saintqiqi 2005-04-03
  • 打赏
  • 举报
回复
帮顶
zedan 2005-04-03
  • 打赏
  • 举报
回复
帮忙!
黑字先生 2005-04-02
  • 打赏
  • 举报
回复
up
ljf96345 2005-04-02
  • 打赏
  • 举报
回复
http://dotnet.aspx.cc/ShowDetail.aspx?id=54F4C732-AAE2-4135-FB1B-7B4B613BAA33
yy8866 2005-04-02
  • 打赏
  • 举报
回复
HONGDUN 2005-04-02
  • 打赏
  • 举报
回复
up
dzvsyt 2005-04-01
  • 打赏
  • 举报
回复
用DataSet里面的关系:

准备两个repeater:rptParent,rptChild

sql= "select * from a"
Da=New SqlDataAdapter(sql,conn)
Da.Fill(Ds,"parent")
rptParent.DataSource=Ds.Tables("parent")
rptParent.Databind()

sql = "select * from b"
Da=New SqlDataAdapter(sql,conn)
Da.Fill(Ds,"child")
''创建之间关系
Ds.Relations.Add("ddd", Ds.Tables("parent").Columns("id"), Ds.Tables("child").Columns("id"))

<!--父模板开始-->
<asp:repeater id="rtpParent" runat="server">
<itemtemplate>
父表:<%# DataBinder.Eval(Container.DataItem,"name") %></li></b>
<asp:repeater id="rptChild" runat="server" datasource='<%# (Container.DataItem).Row.GetChildRows("ddd")%>'>
子表:<!-- 子Repeater开始 -->
      <itemtemplate>
  <%# Container.DataItem("subname")%>  </itemtemplate>
</asp:repeater>
<!--子Repeater结束-->
</itemtemplate>
</asp:repeater>
<!--父模板结束-->

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧