日期:2014-05-18  浏览次数:20486 次

类型化的DataSet如何多表显示?(20分试问~如有答者就加分)
DataSet   ds   =   new   DataSet();
                SqlConnection   conn   =   new   SqlConnection( "server=.;uid=sa;pwd=;database=qq ");
                new   SqlDataAdapter( "select   *   from   Users ",   conn).Fill(ds,   "Users ");
                new   SqlDataAdapter( "select   *   from   Roles ",   conn).Fill(ds,   "Roles ");
                new   SqlDataAdapter( "select   *   from   UserRoleJoin ",   conn).Fill(ds,   "UserRoleJoin ");
                //DataRelation
                DataRelation   del1   =   new   DataRelation( "UserRoleJoin ",   ds.Tables[ "Users "].Columns[ "UserId "],   ds.Tables[ "UserRoleJoin "].Columns[ "UserId "],   false);
                DataRelation   del2   =   new   DataRelation( "Roles ",   ds.Tables[ "UserRoleJoin "].Columns[ "RoleId "],   ds.Tables[ "Roles "].Columns[ "RoleId "],   false);

                ds.Relations.Add(del1);
                ds.Relations.Add(del2);


请问可以把这个ds的内容变成一个自连接的datatable吗??
内容如下:
select   c.*,a.*   from  
roles   a   join   userrolejoin   b  
on   b.userid=1   and   b.roleid=a.roleid
join   users   c   on   c.userid=b.userid


UserId             UserName       Password       RoleId   Name                                   Code    
-----------   ----------   ----------   ------   --------------------   -----  
1                       QWEQWEQ         wwwwww           a             777777                               ^*#@
1                       QWEQWEQ         wwwwww           b             22222                                 $@#$


------解决方案--------------------
这种情况最好是在数据库中建个VIEW,然后读取这个VIEW。
------解决方案--------------------
多表关联的SQL语句为什么不用SQLSERVER的视图功能写呢
自己写多累啊
------解决方案--------------------
学习邦顶,前段时候也搞了个多标的连接
------解决方案--------------------
再问一下namhyuk(namhyuk)

如果建视图~~那我实体层是不是也要建类来拿数据?这样好吗?
------解决方案--------------------
实体类本身就存在多表连接操作的局限性,所以不必新建这个类。
------解决方案--------------------