我有一个带有"Code"列的usersdataTable我设置为PK并在MySql DB中自动递增"true".
我希望用户在数据网格视图上填写名字,姓氏,用户名等的值,但不能输入代码值.
我有这个代码用于更新/插入:
private void usersBindingNavigatorSaveItem_Click(object sender, EventArgs e) { try { if (dgvUsers.RowCount > 0) { for (int i = 1; i <= dgvUsers.RowCount; i++) { var code = dgvUsers.Rows[i].Cells[0].Value.ToString(); if (code == string.Empty) { // add users this.usersTableAdapter.Insert( dgvUsers.Rows[i].Cells[1].Value.ToString(), dgvUsers.Rows[i].Cells[2].Value.ToString(), dgvUsers.Rows[i].Cells[3].Value.ToString(), GlobalClass.MD5Hash(dgvUsers.Rows[i].Cells[4].Value.ToString()), DateTime.Now, null ); } else { // edit users this.usersTableAdapter.Update(this.eko_payrollDataSet.users); } } } MessageBox.Show("Details Updated Successfully"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
表结构:
Code int NN PK Autoincrement firstName Varchar NN lastName Varchar NN userName Varchar NN password varchar NN created datetime NN modified datetime Null?
我将datagridview从创建绑定源的数据集拖到表单中.当我按下+按钮添加新行并完成输入值后,NoNullAllowedExeption for column Code
当我将光标移动到另一行或尝试在此下面添加一行时,我得到一个.
我需要做些什么来解决这个问题?我没有添加会导致此问题的验证代码.
我在这里遇到了同样的问题http://www.databaseforum.info/5/857494.aspx
当您的PK是自动增量列时,DataSet中的关联列应具有正确的AutoIncrement和AutoIncrementSeed,否则您应该能够在数据集设计器中设置它们.
这是一个类似于你的问题,看看你是否能找到有用的东西.
自动增量值功能于自动生成
我认为你的问题很少,你可以举一个例子,或者把数据集/数据表和gridview的所有属性放在一起.
祝好运.