由于自动增量字段,无法使用tableadapter.insert方法插入数据

时间:2012-12-26 23:41:13

标签: c# database

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

我正在使用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,txtAddAddress.Text,txtAddNotes.Text); peopleTableAdapter.Update(this.hisabati_DBDataSet.People); *

该表包含一个名为“ID”的字段,该字段是具有以下

的自动增量字段

属性:  允许空:否  独特:是的  PK:没有

Insert方法中的第一个参数是要求ID,如果我没有输入值,我将得到一个编译错误,需要一个值。如果我输入一个值(因为我在上面输入0),我会收到以下错误: 错误消息:无法修改该列 Err HRESULT:-2147467259

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

3 个答案:

答案 0 :(得分:1)

感谢帮助人员。

我在2年前发布了这个问题。我最终扔掉了SQL Server Compact Edition并使用了Firebird。这个和许多其他问题都消失了。

我不建议任何人使用SQL Server Compact Edition。 感谢

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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