我数据库中的学生表字段是:ID,Name,ClassId(跟班级表关联)
班级表:ID,ClassName然后我查询时用的是实体类(entity),跟数据库字段对应,也就是ID,Name,ClassId这几个属性.
问题在于,我查询出来之后,想显示班级名称,而不是ClassId,怎么办啊大哥?
班级表:ID,ClassName然后我查询时用的是实体类(entity),跟数据库字段对应,也就是ID,Name,ClassId这几个属性.
问题在于,我查询出来之后,想显示班级名称,而不是ClassId,怎么办啊大哥?
select a.id, a.name, b.classname from 学生表 a left join 班级表 b on a.classid = b.classid
ID,Name, ClassEntity(班级对象)这样在赋值的时候,直接给班级属性赋值.用的时候可以直接使用有点nhibernate这种面向对象的思想了...
我数据库中的学生表字段是: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
DataTanle.Rows["行号"]["列名"]
而你的实体类里应该会必要包含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成员就可以了吧~~~~
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
声明一个变量:
你的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;//这就是你要显示的值