我数据库中的学生表字段是:ID,Name,ClassId(跟班级表关联)
班级表:ID,ClassName然后我查询时用的是实体类(entity),跟数据库字段对应,也就是ID,Name,ClassId这几个属性.
问题在于,我查询出来之后,想显示班级名称,而不是ClassId,怎么办啊大哥?

解决方案 »

  1.   

    再写一个方法GetClassName(int ClassID);
      

  2.   


    select a.id, a.name, b.classname from 学生表 a left join 班级表 b on a.classid = b.classid
      

  3.   

    或者是你的实体是这个样子
       ID,Name, ClassEntity(班级对象)这样在赋值的时候,直接给班级属性赋值.用的时候可以直接使用有点nhibernate这种面向对象的思想了...
      

  4.   

    我想参照一下Hibernate啊,但是不懂怎么弄!
      

  5.   

    两个表关联查询不就行了?
    我数据库中的学生表字段是:ID,Name,ClassId(跟班级表关联) 
    班级表:ID,ClassName select a.id,a.name,b.Classname from XX a inner join xx b on a.Classid = b.id where 
      

  6.   

    联合查询肯定得啊,但问题是这样就返回一个DataTable了,都没封装好啊。
      

  7.   

    这样调用就可
    DataTanle.Rows["行号"]["列名"]
      

  8.   

    你的这个属于逻辑问题而不是技术上有问题吧,既然你要用类来封装一个查询结果,就是要把读出来的Datatable赋值到你那个实体类的集合里,也就是重新封装一下你的DataTable。
    而你的实体类里应该会必要包含4个成员变量ID Name  ClassID  ClassName
    class student
    {
       string ID;
       string Name;
       string ClassID;
       string ClassName;   public student(DataRow dr)
       {
             ................
       }
    }
    然后通过你的DataTable里的每一个行结果来实例化你的这个实体类
    DataRow dr;
    ArrayList<student> stds = new ArrayList<student>();
    student temp;
    foreach dr in DataTable.Rows
    {
        temp = new student(dr);
        stds.add(temp);
    }
    ....
    ....
    感觉大体是这个意思吧,到时候你只要调用student.getClassName();之类的函数返回一下你的班级名称就好了。
    如果你原先的实体类由于其他依赖已经不可改变,那只需要继承它,加入你的Classname成员就可以了吧~~~~
      

  9.   

    asp.net夜话之八:数据绑定控件
    在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
      

  10.   

    做个联合查询就行了,最后得到的是一个DataTable,绑定就行了。
      

  11.   


    声明一个变量:
    你的ID类型 StudentID=你查询出来的ID;
    然后:
    如果你班级查询结果有返回List集合的话就
    假如是:ClassCollection
    ClassCollection=ClassCollection.FindAll(new Predicate<int>(delegate(班级表实体类名称 obj){return obj.ID==StudentID;}));
    foreach(班级表实体类名称 data in ClassCollection)
      String ClassName=data.ClassName;//这就是你要显示的值如果查询的是DataSet的话:
    var query=from u in ds.Tables["班级表名"].AsEnumerable() where u.Field <ID类型>("ID")==StudentID  select u;
    foreach(班级表实体类名称 data in query)
      String ClassName=data.ClassName;//这就是你要显示的值