TableAdapter 的插入方法不起作用?

Posted

技术标签:

【中文标题】TableAdapter 的插入方法不起作用?【英文标题】:Insert method of TableAdapter not working? 【发布时间】:2010-12-28 23:47:59 【问题描述】:

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

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

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

还是需要用SqlCommand手动插入???

【问题讨论】:

【参考方案1】:

我也很难弄清楚。

你需要在TableAdapter.Insert(...)之后调用DataSet.AcceptChanges()

这对我有用。

所以步骤是:

    使用可视化创建您的绑定源、表适配器和数据集 工作室。 TableAdapter.Fill(..) // 这应该由 vs 自动添加。 TableAdapter.Insert(..) DataSet.AcceptChanges() TableAdapter.Update(..)

【讨论】:

【参考方案2】:

表适配器旨在与数据集一起使用,以帮助您使用该数据集将数据导入和导出数据库。

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

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

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

【讨论】:

是的,但是这个 update() 不会持久化到数据库中......当我检索数据库的数据时,它是空的。 您的连接字符串是否正确。过去我遇到过问题,连接字符串仍然将数据库指向测试数据库而不是实时数据库。

以上是关于TableAdapter 的插入方法不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

dao 的插入和更新方法不起作用

PUT 方法在表单中不起作用会引发错误

对于> 2个类别的结果,插入符号训练方法不起作用(所有准确性结果都有问题)

POST 方法不起作用但未显示任何错误

setNodeValue() 方法不起作用

React JoditEditor插入图像不起作用