我需要你的帮助,因为我无法在网络上的任何地方找到答案。
我正在使用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,因为它看起来像是一种更优雅的方式来编写和维护编码...任何建议? 非常感谢
答案 0 :(得分:1)
感谢帮助人员。
我在2年前发布了这个问题。我最终扔掉了SQL Server Compact Edition并使用了Firebird。这个和许多其他问题都消失了。
我不建议任何人使用SQL Server Compact Edition。 感谢
答案 1 :(得分:0)
不是专门使用该方法,而是通过People数据集创建一个新行,然后使用TableAdapter从中进行更新。
答案 2 :(得分:0)
您需要更改表适配器的InsertCommand和UpdateCommand。从这些命令的set部分中删除自动增量列名称和值。