//获取该行绑定数据
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();
就这是软件易用性的典范.