vs05b2中给dataset添加表间关系

本文详细介绍了在ASP.NET中使用Dataset实现表间关系的方法,包括创建Dataset、填充数据、添加关系及绑定到GridView的过程。通过具体示例,展示了如何在不同表之间建立关系并正确显示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习asp.net高级编程,也在尝试在vs05中实现书中的代码,呵呵,今天正好到dataset的表间关系,才发现自己对dataset的了解是多么的少,到现在我也只能说知之甚微,但是把自己今天的过程贴出来,迎接大家的拍砖……

数据库我直接用了wrox的wroxbooks,估计大家都知道,我就不说了。不过我还是给出表的简单结构

 

BookPriceBookListBookAuthors
1.gif2.gif3.gif

添加表间关系的思路是,先创建一个dataset,

 

None.gif DataSet objDataSet = new DataSet();
None.gif
None.gif
None.gif            
try
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                objConnection.Open();
InBlock.gif
InBlock.gif                objCommand.CommandText 
= strSelecTitleAuthor;
InBlock.gif                objDataAdapter.Fill(objDataSet, 
"BookList");
InBlock.gif
InBlock.gif                objCommand.CommandText 
= strSelctAuthors;
InBlock.gif                objDataAdapter.Fill(objDataSet, 
"BookAuthors");
InBlock.gif
InBlock.gif                objCommand.CommandText 
= strSelectPrices;
InBlock.gif                objDataAdapter.Fill(objDataSet, 
"BookPrices");
InBlock.gif
InBlock.gif                objConnection.Close();
ExpandedBlockEnd.gif            }

None.gif            
catch (Exception objError)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                
// display error details
InBlock.gif
                Page.Response.Write( objError.Message + objError.Source);
InBlock.gif               
ExpandedBlockEnd.gif            }

 


然后再添加关系

 

None.gif DataColumn parentCol;
None.gif            DataColumn childColAuthor;
None.gif            DataColumn childColPrice;
None.gif
None.gif            
// Code to get the DataSet not shown here.
None.gif
            parentCol = objDataSet.Tables["BookList"].Columns["ISBN"];
None.gif            childColAuthor 
= objDataSet.Tables["BookAuthors"].Columns["ISBN"];
None.gif            childColPrice 
= objDataSet.Tables["BookPrices"].Columns["ISBN"];
None.gif
None.gif            DataRelation objRelation ;
None.gif            objRelation 
= new DataRelation("BookAuthors", parentCol, childColAuthor);
None.gif            objDataSet.Relations.Add(objRelation);
None.gif
None.gif            objRelation 
= new DataRelation("BookPrices", parentCol, childColPrice);
None.gif            objDataSet.Relations.Add(objRelation);


最后绑定到页面(我这里使用了gridview,才正确现实,使用datalist不能将数据绑定过去。)

None.gifGridView1.DataSource = objDataSet.Tables;
None.gif            GridView1.DataBind();
None.gif
None.gif            GridView2.DataSource 
= objDataSet.Relations;
None.gif            GridView2.DataBind();
None.gif
None.gif            GridView3.DataSource 
= objDataSet.Tables["BookList"].DefaultView;
None.gif            GridView3.DataBind();
None.gif
None.gif            GridView4.DataSource 
= objDataSet.Tables["BookAuthors"].DefaultView;
None.gif            GridView4.DataBind();
None.gif
None.gif            GridView5.DataSource 
= objDataSet.Tables["BookPrices"].DefaultView;
None.gif            GridView5.DataBind();
None.gif



完成后的结果……


end_DS_M.gif

有两点点注意:
1 那就是用sql的pubs不能完成类似的结果,而且sql语句只能是“Select * From [Authors] where au_id '779-83-776'”
不知道是表的数据的原因,还是其他的原因
2 添加关系时,不能像下面这样了
objRelation = new DataRelation("BookAuthors",
         objDataSet.Tables["Books"].Columns["ISBN"],
         objDataSet.Tables["Authors"].Columns["ISBN"]);

[注:我是新手,我只能说这些了,更进一步的东西,还是希望大家指点]

转载于:https://www.cnblogs.com/yang_sy/archive/2005/04/30/148344.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值