我有两张表,一张类型表type,     一张信息表info
     type表的字段为:              info表的字段为:
      typeID,typeName;              infoID,infoName,typeID;现在主要是我用gridview显示info表.
 如:
      信息名称  类型名称
      数据绑定  数据绑定
      数据绑定  数据绑定实际上gridview里的“类型名称”的DataField绑定的是“typeID”.我怎么让它根据typeID找到type表里的“typeName”显示到girdview里?各位帮帮忙!小妹先再此谢谢了!

解决方案 »

  1.   

    建实体类
    punlic class info_type
    {}
    public class info 
    {
     public info_type t{get;set;}
    }
    通过外键属性获取名称
    或在gridview中使用模板列,查询获取typeName
      

  2.   


    实体是单独写在类文件里的。在表示层里,怎样去用呢?主要是页面上始终会提示找不到数据源typeName
      

  3.   

    select typeName,infoName from type t,info i where t.typeID=i.typeID
    这个作为数据源,在GridView里面绑定这两个字段就行了。。
      

  4.   

    up up 学习一下,谢谢了
      

  5.   

    如果数据源是DataTable,直接用一个条SQL语句把两个表关联,然后绑定需要的字段即可。
      

  6.   

    <%# Eval("t.typeName") %>
      

  7.   


    sql语句不在表示层写,写到其它层不就行了吗,在表示层this.GridView1.DataSource="数据源";this.GridView1.DataBind();
      

  8.   

    我用的是BoundField,不是TemplateField,所以不能用<%# Eval("t.typeName") %>
      

  9.   


    目前的情况是写了这样一个视图,而我的gridview1.datasource=接口.方法();所以不能这样用。
      

  10.   

    GridView可以直接写SQL来绑定数据。在页面设计阶段就可以做
      

  11.   

    修改你获取数据的SQL语句为:select i.infoID,i.infoName,t.typeID,t.typeName  from type t,info i where t.typeID=i.typeID 然后再设置DataField为typeName即可。
      

  12.   

    这种问题么。
    一:  优先选择视图做么。、
         写个视图,效率也出来了、二: 再行绑定事件的时候 页面上的信息typeId 绑定的值 得到 写个方法 再读取数据库一次、
        这种不推荐使用、效率低、
      

  13.   

    datafield里直接绑定typename不行?
      

  14.   

    BoundField是双向的,你只要展示的话,干嘛非要用BoundField。
    直接把该字段转换成TemplateField,不就可以了吗?
      

  15.   


    不行。因为typename是type表里的,type表的typeID是关联到info表的。
      

  16.   


    就算是用TemplateField,它也不能直接<%# Eval("t.typeName") %>,typename没在info实体里。