当我将linq查询绑定到datagridview的数据源时,我不能更改gridview中的任何单元格值。列的只读属性自动设置为true,当我试图将其设置为false时,它给出以下异常:-
绑定到只读字段的DataGridView列必须将ReadOnly设置为True。LINQ这是我的代码
DataClasses1DataContext db = new DataClasses1DataContext();
var selectquery = from s in db.Sarees where s.Bill.BillNo == billno select new { s.BillID,s.Price };
我找到了一个解决这个问题的方法,如果表中有很多列,我想只选择两个,这不是肮脏的…第一个解决方案是:-
var selectquery = db.Sarees.Where(s => s.Bill.BillNo == billno);
当我给出这个查询它工作得很好。但我想要一个解决方案,我可以通过LINQ选择只有一些列,可以改变它的值时,通过一个datagridview绑定…
问题是该查询不返回Sarees
的集合,因此无法按您的需要进行编辑。它是一个返回具有BillID
和Price
属性的新对象集合。
DataClasses1DataContext db = new DataClasses1DataContext();
var selectquery = from s in db.Sarees
where s.Bill.BillNo == billno
select new { s.BillID, s.Price };
您可以使用第二个查询的一个版本并仅将要编辑的列绑定到DataGridView
吗?
您可能还需要使用DataGridView进行探索。CellFormatting事件。