c# - 在 Datagridview 中插入时出错

标签 c# mysql visual-studio-2012 datagridview

我有一个带有“代码”列的用户数据表,我在 MySql 数据库中设置为 PK 和自动递增“true”。

我希望用户在数据 GridView 中填写名字、姓氏、用户名等值,但不能输入代码值。

我有这个用于更新/插入的代码:

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?

我将数据 GridView 从创建绑定(bind)源的数据集中拖到表单中。当我按 + 按钮添加新行并完成输入值时,当我将光标移动到另一行或尝试在该行下方添加一行时,我得到一个 NoNullAllowedExeption for column Code

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

我在这里遇到了同样的问题 http://www.databaseforum.info/5/857494.aspx

最佳答案

当您的 PK 是自动递增列时,DataSet 中的关联列应该有其适当的 AutoIncrement 和 AutoIncrementSeed,如果没有,您应该能够在数据集设计器中设置它们。

这里有一个和你类似的问题,看看你能不能找到有用的东西。

autoincrement-values-in-autogenerated

我觉得你的问题不大,能不能举个例子或者把dataset/datatable和gridview的所有属性都放上来

祝你好运。

关于c# - 在 Datagridview 中插入时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928689/

相关文章:

c# - 如何从另一个窗体调用函数

MySQL LEFT JOIN json 字段与表中的另一个 id

c# - 如何在.net中实现和扩展Joshua的 builder 模式?

php - SQL:我似乎无法弄清楚的左连接问题

mysql - 使用 mysqladmin 更改 MySQL 用户名

wpf - 如何让WPF项目构建运行?

c++ - Base 2 到 Base 10 转换器不能处理非常大的数字?

c++ - 警告 LNK4042 错误

c# - 在 C# 中实现松散耦合的最佳工具是什么

c# - 在内容资源上调用的 Application.GetResourceStream 仍然返回 null