4

我需要您的帮助,因为我无法在网络上的任何地方找到我的问题的答案。

我正在使用 C#,我有一个名为“People”的表,我想使用 TableAdapter 来添加/删除/形成该表。我使用 sdf 文件作为我的数据库作为“Microsoft SQL Server Compact 4.0(Microsoft SQL Server Compact 4.0 的 .NET Framework 数据提供程序)”数据源。

我的代码如下所示:

* peopleTableAdapter.Insert(0, byte.Parse(cbAddType.SelectedIndex.ToString()), txtAddName.Text, txtAddCompany.Text, txtAddPhone.Text, txtAddMobile.Text, txtAddEmail.Text, txtAddress.Text, txtAddNotes.Text); peopleTableAdapter.Update(this.hisabati_DBDataSet.People);*

该表包含一个名为“ID”的字段,它是一个自动递增字段,具有以下内容

属性:允许 Nulls:否唯一性:是 PK:否

Insert 方法中的第一个参数是询问 ID,如果我不输入值,我会得到一个需要值的编译错误。如果我输入一个值(因为我在上面输入 0),我会收到以下错误: Err Msg: Cannot modify that column Err HRESULT: -2​​147467259

我知道如何使用 Command.ExecuteNonQuery 方法插入,但我正在尝试在整个应用程序中使用 TableAdapters,因为它看起来像是一种更优雅的方式来编写和维护代码......有什么建议吗?非常感谢

4

2 回答 2

1

您需要更改表适配器的 InsertCommand 和 UpdateCommand。从这些命令的 set 部分中删除 Auto-Increment 列名称和值。

于 2014-10-13T18:25:23.573 回答
0

不要专门使用该方法,而是通过您的人员数据集创建一个新行,然后使用 TableAdapter 从中更新。

于 2012-12-30T00:04:32.913 回答