【发布时间】:2010-04-15 20:56:55
【问题描述】:
// 从这个 Admin 类获取数据:
public static IQueryable<Student> GetStudents()
{
DojoDBDataContext conn = new DojoDBDataContext();
var query =
from s in conn.Students
join b in conn.Belts on s.BeltID equals b.ID
orderby s.LastName ascending
select s;
return query;
}
// 在我的表单上:
BindingSource bs = new BindingSource();
private void fillStudentGrid()
{
bs.DataSource = Admin.GetStudents();
dgViewStudents.DataSource = bs;
dgViewStudents.Columns.Remove("ID");
}
工作得很好,但与其删除我不想要的 20 多列数据,我宁愿只添加我需要的少数数据。另外,命名标题标题是一种奖励。但是,add 方法对我不起作用:
private void fillStudentGrid()
{
bs.DataSource = Admin.GetStudents();
dgViewStudents.AutoGenerateColumns = false;
dgViewStudents.DataSource = bs;
dgViewStudents.Columns.Add("ID", "ID Number");
}
我得到了适当的行数,并且列标题设置正确...但是行中填充了空白数据。
【问题讨论】:
-
实际上,即使使用第一个 fillStudentGrid() 代码,它也无法正常工作,它不会从 conn.Belts 返回属性。嗬!我可以使用 lambda 将 linq 查询放入表单中,但我试图将数据逻辑分开。
标签: c# winforms linq datagridview bindingsource