可以';不要向数据集中添加多行

本文关键字:集中 数据集 添加 数据 可以 | 更新日期: 2024-10-18 05:20:08

以下是代码:

DataSet1.CashRow CashRow = MainDataSet.Cash.NewCashRow();
CashRow.SetIdNull();
CashRow.Date = CashItem.Date;
CashRow.Description = CashItem.Description;
CashRow.Amount = CashItem.Amount;
MainDataSet.Cash.Rows.Add(CashRow);

它第一次运行得很好。但是,如果放入一个循环中并简单地加倍,则不会再添加行。我必须关闭应用程序并重新启动它。

更新:我有一个连接到数据集的DataGridView。这会造成什么问题吗?这个问题真的很奇怪,我已经试着解决这个问题一周了。也许还有其他添加行的方法?

更新2:找到原因:"System.Data.ConstraintException:列'Id'被约束为唯一。值''已存在。".

可以';不要向数据集中添加多行

试试这个:

DataSet1.CashRow CashRow = MainDataSet.Cash.NewCashRow();
CashRow.Date = CashItem.Date;
CashRow.Description = CashItem.Description;
CashRow.Amount = CashItem.Amount;
MainDataSet.Cash.AddCashRow(CashRow);
CashTableAdapter.Update(MainDataSet);

如果它仍然只更新一行,则将此块作为函数,如下所示:

private void CreateCashRow (DateTime date, string description, int amount)
{
   DataSet1.CashRow CashRow = MainDataSet.Cash.NewCashRow();
   CashRow.Date = date;
   CashRow.Description = description;
   CashRow.Amount = amount;
   MainDataSet.Cash.AddCashRow(CashRow);
   CashTableAdapter.Update(MainDataSet);
}

并根据需要多次调用该函数。

您必须确保您在表上有PrimaryKey

  • 我还建议您不要像在CashRow中那样对变量和类型使用如此相似的名称