我有一个dataGridView,我可以在其中插入,删除和更新值,但有些事情困扰着我。 用户只能修改显示的2列(大小和数量),隐藏2个其他列(ID和selectedComponent)。 ID是我桌上的PK。
这就是我设置新行的ID和selectedComponent所做的:
private void dataGridViewStock_DefaultValueNeeded(object sender,
System.Windows.Forms.DataGridViewRowEventArgs e)
{
e.Row.Cells["id"].Value = "1";
e.Row.Cells["codeArticleComponent"].Value = labelComponentChosen.Text;
}
无论我为ID添加什么值,第一个可用的数字都将插入到数据库中。它有效,但我担心它可能会导致错误。
有没有更好的方法来实现这一目标?或者我可以保留原样吗?
答案 0 :(得分:0)
您可能需要一个单独的列(仅在GirdView中)来识别当前行是新添加的还是现有的。并根据新列增加带有负值的id列。
在保存数据的同时,您可以识别新创建的行,这可以通过插入不带id列来保存数据或更新现有数据。
希望这能澄清你。
答案 1 :(得分:0)
这是我在datagrid视图中自动递增主键的代码
private void Row_Added(object sender,
DataGridViewRowsAddedEventArgs e){
foreach(DataGridViewRow dtr in dataGridView1.Row){
dataGridView1.Rows[e.RowIndex-1].Cells[0].Value =
e.RowIndex;
}
}
我用了这个...