无法向DataSet添加多行

时间:2012-08-05 08:49:33

标签: c# dataset

以下是代码:

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);

第一次工作正常。但是,如果放入循环并简单地加倍,则不再添加行。我必须关闭应用程序并重新启动它。

更新:我有一个连接到DataSet的DataGridView。这会导致任何问题吗?这个问题真的很奇怪,一直试图解决这个问题一周。也许还有其他方法可以添加行?

更新2:找到原因:“System.Data.ConstraintException:列'Id'被限制为唯一。值''已经存在。”。

1 个答案:

答案 0 :(得分:0)

试试这个:

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那样使用类似名称的变量和类型。