在群里问遍了,几乎没有结果,特来csdn,求高手给出答案,请高手不要用一个 RowDatabound 这样的简单回复,先谢过了。本人新手碰到这个问题两晚上没解决了。请耐心看题目描述。数据库结构描述:存在两个表,其中A表里面保存的是“所有教师发布的作业”,B表保存的是“所有学生提交的作业”
功能描述: 比如学号为 001 的学生是 “计算机应用班“ 的,进入后台以后,查看作业列表,首先要展示的是一个表格,显示 “计算机应用班” 所有老师发布的作业,但是,最后一列需要显示的是该同学是否已经上交该次作业。一般的做法就是 select * from A where Class = ‘计算机应用班’ 查询得到一个数据表以后绑定到gridview,但是最后一列是要显示这个同学交了没交本次作业,到底该如何处理?要看这个同学有没有交只要查询 B 表里面 有没有关于这个同学的这次的记录,但是这样一来不是有两次绑定了吗?要把数据另外一个数据绑定给最后一个列?具体如何操作啊?如果我说的不够明白,请看下面表结构表 HomeWorkList 保存所有教师发布的作业
   
HomeWorkNum          Class             Subject                  HomeWorkTitle            HomeWorkContent     
     1              计算机应用班       JAVA程序设计         第一次java程序设计作业     作业要求内容。。
     2              计算机应用班       JAVA程序设计         第二次java程序设计作业     作业要求内容。。
表 HomeWorkDoneList 保存所有已经上交的作业HomeWorkNum        Class            Subject          WhoSub(代表哪个学号上交的) 
      1            计算机应用班    JAVA程序设计         15 意思就是说,一个gridview前几列要显示出HomeWorkList 表中 Class = ‘计算机应用班’ 的所有数据,同时我需要的效果就是,在gridview
最后一列,显示出这个同学是否已交 本来sql应该是 select * from HomeWorkDoneList where Class=’计算机应用班’ and Subject=’JAVA程序设计’ and WhoSub=’15’
这样一来,当查询到的时候结果就是有交,没查到就没交
估计问题都描述清楚了,请各位支招!

解决方案 »

  1.   

    你在数据访问层分别写两个方法:
    一个方法是的得到 “计算机应用班” 所有老师发布的作业;
    另一个方法是得到最后一列需要显示的是该同学是否已经上交该次作业。
    然后再biz层去调用那两个方法,然后返回给一个实体,处理一下就ok了。
      

  2.   

    访问层查询的时候 用内联啊! 然后返回一个datatable 包含那一列
      

  3.   

    太复杂了问题了。。
    联合查询吧。弄个存储过程,在里面把这些全查询好。然后再返回一个结合显示就行了。
    不用纠结在GridView上面了。
      

  4.   

    数据源里 查询用联结查询啊,你不会只会用单表 “select *”吧
      

  5.   

    1.表设计不满足2F2.  string sql="select * from  table1    select * from table2";
    DataSet ds=new DataSet();
    DataAdapter adapter=new ("数据库连接字符串",sql)
    adapter.fill(ds);gridview.数据源=ds.table[0];什么.Text=ds.Table[1].Row[0][0];
      

  6.   

    select * from HomeWorkList as a  left join HomeWorkDoneList as b 
    on a. HomeWorkNum =b.HomeWorkNum  where b.WhoSub='XXX'
      

  7.   

    这东西还要写视图么? 不就是一个sql语句么
      

  8.   

    select a.HomeWorkNum, a.Class, a.Subject ,b.WhoSub   from HomeWorkList a left join
    (select * from HomeWorkDoneList where Class=’计算机应用班’ and Subject=’JAVA程序设计’ and WhoSub=’15’)b on a.HomeWorkNum  = b .HomeWorkNum