TableAdapter的插入方法不起作用?
我在我的C#项目中使用ADO.NET。 在我的表单中,我在VS2010的工具箱中添加了一个SourceBinding元素。 我将连接设置为我的数据集表。 它为我自动创建一个DataAdapter。
我想插入一条记录,所以我调用DataAdapter的Insert()方法。 但是当我查看我的数据库数据时,它没有任何新记录……
orderID = this.orderTableAdapter.Insert("", "", (int)OrderStatus.IN_CONSTRUCTION, DateTime.Now);
或者我需要使用SqlCommand手动插入???
表适配器旨在与数据集一起使用,以帮助您使用此数据集将数据输入和输出数据库。
想法是您可以使用Dataset.NewYourTableNameRow()
为数据集创建新行,然后填充其字段,然后调用DataSet.AddYourTableNameRow(row)
将其放入数据集中。
现在,您可以orderTableAdapter.update(DataSet)
将该新行传输到数据库中。
要删除或更新行,您应首先在数据集中选择它,对对象执行更改,然后在相应的表适配器上调用.update(ds)以将其发送回来。
我也很难搞清楚这一点。
你需要在TableAdapter.Insert(...)
之后调用DataSet.AcceptChanges()
TableAdapter.Insert(...)
这对我有用。
所以步骤是:
- 使用visual studio创建bindingsource,tableadapter和dataset。
-
TableAdapter.Fill(..)
//这应该自动添加到vs. -
TableAdapter.Insert(..)
-
DataSet.AcceptChanges()
-
TableAdapter.Update(..)