student表:int ID;varchar(50) Name;
class表:int ID;int studentID(外码);
在vs2008中新建一个LINQ To SQl类后自动生成代码我就不写了。
然后我有一个页面a.aspx,得知一个class的ID后,想到得到其中所有学生的id,然后用代码方式绑定到gridview中输出。
在这里,我不太知道怎么用ling to sql的语言查询,请指教:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
IList <student> studentlist = ???????;
//麻烦大牛们帮我填一下?????,
}
}
8 个解决方案
#1
表结构有问题
class表:int ID;int studentID(外码);
class表:int ID;int studentID(外码);
#2
studentlist = db.class.where(a => a.ID = ID).select(a => a.ID);
#3
IList <student> studentlist =from u in db.Student.Where(u=>u.ID=你已知的ID).Select(r=>u.ID).ToList();
#4
错了,你只要一个ID,返回类型不是IList <student>
应该是你ID的类型,如果 ID是int的话就是IList<int>
应该是你ID的类型,如果 ID是int的话就是IList<int>
#5
from u in db.Student
Where(u=>u.ID=classID)
Select u.ID).ToList();
Where(u=>u.ID=classID)
Select u.ID).ToList();
#6
楼上的正确!! 关键是这个表建的 有些问题
#7
数据库中建立了外键linq to sql会自动生成实体的级联
#8
好象你的表结构设计有问题也(不说也罢);
你能否在数据库中为二者的关联添加一视图vClass:
select class.ID as cID, student.ID as sID, student.Name as sName from class join student on class.ID=student.ID;
在linq建立视图映射类:vClass;
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.vClass
where v.cID==ID
select v;
gridView.datasource=result;
gridView.databind();
尝试一下;如果不建立视图,就使用你自身的linq:
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.Class
where v.cID==ID
select v;
gridView.datasource=result.student; //从表数据做为Class的一个字段student;
gridView.databind();
你能否在数据库中为二者的关联添加一视图vClass:
select class.ID as cID, student.ID as sID, student.Name as sName from class join student on class.ID=student.ID;
在linq建立视图映射类:vClass;
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.vClass
where v.cID==ID
select v;
gridView.datasource=result;
gridView.databind();
尝试一下;如果不建立视图,就使用你自身的linq:
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.Class
where v.cID==ID
select v;
gridView.datasource=result.student; //从表数据做为Class的一个字段student;
gridView.databind();
#1
表结构有问题
class表:int ID;int studentID(外码);
class表:int ID;int studentID(外码);
#2
studentlist = db.class.where(a => a.ID = ID).select(a => a.ID);
#3
IList <student> studentlist =from u in db.Student.Where(u=>u.ID=你已知的ID).Select(r=>u.ID).ToList();
#4
错了,你只要一个ID,返回类型不是IList <student>
应该是你ID的类型,如果 ID是int的话就是IList<int>
应该是你ID的类型,如果 ID是int的话就是IList<int>
#5
from u in db.Student
Where(u=>u.ID=classID)
Select u.ID).ToList();
Where(u=>u.ID=classID)
Select u.ID).ToList();
#6
楼上的正确!! 关键是这个表建的 有些问题
#7
数据库中建立了外键linq to sql会自动生成实体的级联
#8
好象你的表结构设计有问题也(不说也罢);
你能否在数据库中为二者的关联添加一视图vClass:
select class.ID as cID, student.ID as sID, student.Name as sName from class join student on class.ID=student.ID;
在linq建立视图映射类:vClass;
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.vClass
where v.cID==ID
select v;
gridView.datasource=result;
gridView.databind();
尝试一下;如果不建立视图,就使用你自身的linq:
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.Class
where v.cID==ID
select v;
gridView.datasource=result.student; //从表数据做为Class的一个字段student;
gridView.databind();
你能否在数据库中为二者的关联添加一视图vClass:
select class.ID as cID, student.ID as sID, student.Name as sName from class join student on class.ID=student.ID;
在linq建立视图映射类:vClass;
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.vClass
where v.cID==ID
select v;
gridView.datasource=result;
gridView.databind();
尝试一下;如果不建立视图,就使用你自身的linq:
int ID = Request[ID];
DataClassesDataContext db = new DataClassesDataContext();
var result=from v in db.Class
where v.cID==ID
select v;
gridView.datasource=result.student; //从表数据做为Class的一个字段student;
gridView.databind();