当我将linq查询绑定到datagridview的数据源时,我无法更改gridview中的任何单元格值。列readonly属性自动设置为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 };
我发现这个问题有一个解决方案,如果表中有很多列而我只想选择两个列,那么这个解决方案并不肮脏...... 1解决方案是: -
var selectquery = db.Sarees.Where(s => s.Bill.BillNo == billno);
当我提供此查询时,它工作正常.. 但是我想要一个解决方案,我只能通过LINQ选择一些列,并且可以在通过datagridview绑定时更改其值...
答案 0 :(得分:2)
问题是此查询不会返回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 Event进行探索。