在DataGridView中自动增加ID列的最佳方法?

时间:2018-02-20 10:41:05

标签: c# sql-server winforms

我有一个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添加什么值,第一个可用的数字都将插入到数据库中。它有效,但我担心它可能会导致错误。

有没有更好的方法来实现这一目标?或者我可以保留原样吗?

2 个答案:

答案 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;
}
}

我用了这个...