DataGridView数据绑定的几种方法
在WINFORM编程中,数据绑定是最普通的一个问题了,本文将要提到的是在使用LINQ+泛型作为数据源时,数据绑定遇到的问题。
由于LINQ是把表的结构映射到实体对像数据结构,数据源如果不处理,将会是整个表的数据集合,因此,在数据绑定的时候,效率将是一个很重要的问题。
问题:
如果一个DataGridView在进行绑定数据时,是多表连接查询的结果,LINQ绑定方法有以下几种:
- 方法一:
- public IQueryable getlist() {
- var query= from s in stuList
- join c in classList on s.cid equels c.id
- select new {s.sid,s.sname,c.cname};
- return query;
- }
- public void DgvListBind()
- {
- var query= getlist();
- DataGridView.Datasource=query.ToList();
- }
- 方法二:
- public List<Students> GetStudentList()
- {
- return db.Student.List();
- }
- public List<Classes> GetClassList()
- {
- return db.Class.List();
- }
- public void DgvListBind()
- {
- List<Students> stuList=GetStudentList();
- List<Classes> classList=GetClassList();
- var query= from s in stuList
- join c in classList on s.cid equels c.id
- select new {s.sid,s.sname,c.cname};
- DataGridView.Datasource=query.ToList();
- }
- 方法三:
- public List<Students> GetStudentList()
- {
- return db.Student.List();
- }
- public List<Classes> GetClassList()
- {
- return db.Class.List();
- }
- public void DgvListBind()
- {
- List<Students> stuList=GetStudentList();
- List<Classes> classList=GetClassList();
- foreach(Students s in stuList)
- {
- object [] row ={
- s.sid,
- s.sname,
- classList.FirstOrDefault(p=>p.id==s.cid).cname
- };
- datagridview.Rows.Add(row);
- }
- }
datagridview绑定效率:
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · 自定义DataGridView表头
- · C#的DataGridView列怎么填充宽度
- · 删除DataGridView行:了索引1处没有值
- · dataGridView另一种复制表的方式
- · 在datagridview里添加自定义控件列
- · The instance of entity type ‘Customer’ cannot be tracked because another instance with the same key value for {‘Id’} is already being tracked.
- · .NET8实时更新nginx ip地址归属地
- · 解决.NET Blazor子组件不刷新问题
- · .NET8如何在普通类库中引用 Microsoft.AspNetCore
- · .NET8 Mysql SSL error
- · ASP.NET Core MVC的Razor视图渲染中文乱码的问题
- · .NETCORE 依赖注入服务生命周期