很重要的问题,DataSet里面的多表关联处理

yhwebus 2003-08-01 02:25:38
DataSet (ds) 里面有两个Table(TA,TB)和一个Relation(RAB)

TA
A_ID,A_1,A_2,A_BID
TB
B_ID,B_1

(TA影射数据库表TableA,TB影射数据库表TableB)

RAB=ds.Relations.Add("ABRelation",
ds.Tables["TA"].Columns["A_BID"],
ds.Tables["TB"].Columns["B_ID"]);

我按某个条件查询TableA,并将结果集Fill到TA,如何Fill与TA相关联的TB的表的信息呢?(偶现在能想到的最笨的办法就是读取TA中的每条记录,然后利用其A_BID查询TableB,再将结果Fill到TB中

有没高效一点的办法?或者我处理问题的思路就有问题?或者处理这样的问题不应该这样设计DataSet(这个ds承载一个数据实体)
...全文
91 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanggx 2003-08-01
  • 打赏
  • 举报
回复
如果要绑定到DataGrid:
MyDataGrid.DataSource = dstTableA;
MyDataGrid.DataBind();
huanggx 2003-08-01
  • 打赏
  • 举报
回复
C#代码:

DataSet dstTableA = new DataSet();
SqlDataAdapter dadTableA;
SqlConnection myConnection;
string SqlStatement;

myConnection = new SqlConnection(连接字串);
SqlStatement = "SELECT a.A_1, a.A_2, b.B_1 FROM TableA a INNER JOIN TableB b ON a.A_BID = b.B_ID");

myConnection.Open();
dadTableA = new SqlDataAdapter(SqlStatement, myConnection);
dadTableA.Fill(dstTableA);
这样就得到了你想要的关联数据表
okok999 2003-08-01
  • 打赏
  • 举报
回复
up
yhwebus 2003-08-01
  • 打赏
  • 举报
回复
ok ,如果分析过duwamish,你应该知道这个DataSet承载的是一个数据实体,两张表及一个关系是该数据实体与数据库的表影射的结果; 在界面里面可能会输入查询条件,传递到DataAccess层,然后返回一个DataSet到界面的控件(DataGrid)进行绑定.当然,最简单的就是不定义这个数据实体(定义好结构的DataSet),直接将存储过程的查询结果Fill到一个DataSet或者DataReader里面(这个时候只有一张表,可能只包含A_ID,A_1,A_2,B_1几个字段,DataGrid将显示的几个字段). 我试着使程序更结构话一点,但是碰到很多问题,这就是其中的一个.
tristones 2003-08-01
  • 打赏
  • 举报
回复
http://www.aspcool.com/lanmu/dot.asp?ID=1006&bbsuser=aspnet
pingo888 2003-08-01
  • 打赏
  • 举报
回复
不明白你的意思,
不过我想为什么要DataSet (ds)几个表来做呢?
我看还是想想用一个SQL解决会好点。
niqiu322 2003-08-01
  • 打赏
  • 举报
回复
不太懂你想要达到的效果,你是要绑定呢,还是要付值呢?
yhwebus 2003-08-01
  • 打赏
  • 举报
回复
顶到高手来解答
wayneliu 2003-08-01
  • 打赏
  • 举报
回复
帮你顶!
up!
DoNotTomcat 2003-08-01
  • 打赏
  • 举报
回复
帮你顶。

62,243

社区成员

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

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

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

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