我有一个id(identity)列的数据库。此列绑定到我的DataGridView(WindowsForms)。每当我向DataGridView添加一行(它还没有添加到数据库,只是添加到DataGridView)时,此列中的数字会增加一。非常恼人的行为,我不知道如何阻止它?
我没有使用EF或类似的antyhing。只是DataGridView中的列(不是自动生成的,但是用户定义的列 - AutoGenerateColumns已关闭),添加到DataGridView并且每列都设置了DataPropertyName。
答案 0 :(得分:1)
我不知道您的代码,但您是否尝试这样做:
datagridview1.AllowUserToAddRows = false;
并创建一个用于添加行的按钮,并使用
添加它datagridview1.Rows.Add(-1,..,...);
答案 1 :(得分:0)
为什么不隐藏专栏?
dgvMyDataGridView.Columns["Id"].Visible = false;
答案 2 :(得分:0)
我还没有找到一种方法来阻止DataGridView自动增加id。但是,我现在可以更改DataGridView中的任何值,DataSource绑定到BindingList而不是DataTable,就像以前一样(每个ComboBoxItem必须实现INotifyPropertyChanged)。
private void initializeDgvNotesDataSource()
{
List<ComboBoxItem> list = new List<ComboBoxItem>();
BindingList<ComboBoxItem> bindingList = new BindingList<ComboBoxItem>(list);
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = bindingList;
dgvNotes.DataSource = bindingSource;
}