我正在尝试编辑数据网格中的一列,但它只是拒绝编辑。我已经设置了editmode,但它仍然没有响应。我唯一的意思是我绑定它的数据源。这是我的一些代码:
public partial class Example: Form
{
DataTable edtable = new DataTable();
DbHelper db;
public Example()
{
InitializeComponent();
db = new DbHelper("dbname", "dbid", "dbpassword");
var cmd = db.GetCommand(
"Select ED.ID, ED.Name, ED.Code from EXAMPLETABLE ED Join (Select trim(code) as code, count(code) as codecount from exampletable group by trim(code)) X ON X.codecount > 1 and ED.Code like X.Code || '%'"
);
edtable = db.ExeGetDataTable(cmd);
dataGridView1.DataSource = edtable;
}
}
当我运行我的应用程序时,我的数据网格填充了edtable
,其中包含通过查询获得的内容。但是,我无法编辑其中的任何值。我点击了单元格,就好像这些值是只读的,即使我专门设置editmode进行编辑。
是因为我的数据源吗?如果是这样,我如何才能使我的值可编辑?
谢谢!
答案 0 :(得分:0)
我想你已经在最后的评论中得到了它。我知道当你绑定到数据源时,如果绑定到只读属性,DataGridView
中的单元格将是只读的,无论EditMode
或ReadOnly
是什么或其任何其他属性设置为。我没有绑定到您正在使用的DataTable
个对象之一,但我知道当您绑定到具有{ get; }
属性的类对象时,这些对象在网格中是只读的,而{ {1}}属性可编辑。
您是否希望在编辑网格中的值时,数据库中的值会更新?如果是这样,我确信你需要的东西不仅仅是一个简单的{ get; set; }
语句填充的对象。如何攻击这将取决于您对网格中编辑的值的期望。