TableAdapter的插入方法不起作用?

时间:2010-12-28 23:48:00

标签: c# ado.net

我在我的C#项目中使用ADO.NET。在我的表单中,我在VS2010的工具箱中添加了一个SourceBinding元素。我将连接设置为我的数据集表。它会自动为我创建一个DataAdapter。

我想插入一条记录,所以我调用了DataAdapter的Insert()方法。但是当我查看我的数据库数据时,它没有任何新的记录......

orderID = this.orderTableAdapter.Insert("", "", 
                (int)OrderStatus.IN_CONSTRUCTION, DateTime.Now);

或者我是否需要使用SqlCommand ???

手动插入它

2 个答案:

答案 0 :(得分:4)

我也很难搞清楚这一点。

您需要在DataSet.AcceptChanges()

之后致电TableAdapter.Insert(...)

这对我有用。

所以步骤是:

  1. 使用visual创建bindingsource,tableadapter和dataset 工作室。
  2. TableAdapter.Fill(..) //这应该由vs。
  3. 自动添加
  4. TableAdapter.Insert(..)
  5. DataSet.AcceptChanges()
  6. TableAdapter.Update(..)

答案 1 :(得分:3)

表适配器设计用于数据集,以帮助您使用此数据集将数据输入和输出数据库。

想法是,您可以使用Dataset.NewYourTableNameRow()为数据集创建新行,然后填充其字段,然后调用DataSet.AddYourTableNameRow(row)将其放入数据集中。

现在您可以orderTableAdapter.update(DataSet)将新行传输到数据库中。

要删除或更新行,您应先将其选择到数据集中,对对象执行更改,然后在相应的表适配器上调用.update(ds)以将其发回。