C# 在Datagridview中插入时出错

C# 在Datagridview中插入时出错,c#,mysql,visual-studio-2012,datagridview,C#,Mysql,Visual Studio 2012,Datagridview,我有一个usersdatable,其中的“Code”列设置为PK,在MySql数据库中自动递增“true” 我希望用户在datagrid视图中填写名字、姓氏、用户名等值,但不能输入代码值 我有此代码用于更新/插入: private void usersBindingNavigatorSaveItem_Click(object sender, EventArgs e) { try { if (dgvUsers.RowCount > 0) {

我有一个usersdatable,其中的“Code”列设置为PK,在MySql数据库中自动递增“true”

我希望用户在datagrid视图中填写名字、姓氏、用户名等值,但不能输入代码值

我有此代码用于更新/插入:

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);
    }
}     
我将datagridview从创建绑定源的数据集拖到表单中。当我按+按钮添加新行并输入完值时,当我将光标移动到另一行或尝试在该行下方添加行时,我会得到列代码的
非ullallowedexeption

我需要做什么来解决这个问题?我没有添加会导致这种情况的验证代码


我看到了我在这里遇到的相同问题

当PK是一个自动递增列时,数据集中的关联列应该有其正确的自动递增和自动递增种子,如果没有,您应该能够在数据集设计器中设置它们

这里有一个类似于你的问题,看看你是否能找到有用的东西

我认为您的问题很少,您可以举一个例子,或者放置dataset/datatable和gridview的所有属性


祝你好运。

你能为你的用户表显示表结构吗?@John Bartels。另外,还有一个问题:异常发生在哪一行?调用Insert方法时是否会发生这种情况?或者当设置代码变量时?一旦我添加了一个新行并开始输入数据,只要我单击任何其他行上的另一个单元格,或者如果我尝试在其下方添加新行,就会引发异常。看看这个:谢谢你的回答。我错误地认为,从数据库创建数据集时,数据集将自动更新AutoIncrement和AutoIncrementSeed属性。
Code      int        NN      PK   Autoincrement
firstName Varchar    NN
lastName  Varchar    NN
userName  Varchar    NN
password  varchar    NN
created   datetime   NN
modified  datetime   Null?