Winform中的DataGridView控件内容自动保存
DataGridView控件在Winform程序中使用相当的普遍,如何能让其输入即保存,而不用另增加一个“保存”按钮呢?
经研究,终于找到解决办法:
在DataGridView的RowValidated事件中增加代码以下代码
//获取该行绑定数据
DataRowView row = (DataRowView)gvProduct.Rows[e.RowIndex].DataBoundItem;
//若数据未改动,则返回
if (row.Row.RowState == DataRowState.Unchanged) return;
//执行SQL更新数据
string sql = "update t_product set ipri={0},opri={1} where productNO='{2}'";
DBsql.ExecuteNonQuery(string.Format(sql, row["ipri"], row["opri"], row["productNO"]));
//告知DataGridView,已接受改动,下次校验时行状态为DataRowState.Unchanged
row.Row.AcceptChanges();
RowValidated事件为行校验完成事件,当然你也可以在单元格校验事件中进行保存。
完成这样的效果,使程序变得傻瓜化。
就这是软件易用性的典范.