我有一个强类型的数据表创建与VS2005/VS2008数据集的设计师。

该表中有一个主要关键列guid,它得到填充SQL服务器。问题是,当我想添加一个行(或多个行)到我的数据表然后叫的 起到桥梁作用.更新 方法(传递数据表).时 起到桥梁作用.更新 叫我得到一个SQL异常说,我不能插入空入主键列。

我怎么告诉设计师这是一个自动生成的柱,我不想提供一个价值为新的行?我只是希望所产生的数值SQL。

我失去了一些东西在这里,或者这是一个限制数据集的设计师?

我知道如何实现这一使用皇宫SQL,但很可惜我不要它在我的处置这个项目。

有帮助吗?

解决方案

可能是这个:

  • 如果你不需要列在你的数据集应用,然后将其删除。
  • 如果你想要列但不在乎给它一个值,然后改变它允许DBNull.
  • 你总是可以关闭约束执法(可能是一个坏主意):数据集。EnforceConstraints=false
  • 你可以填补所列的替代关键的,没有得到发送的数据库。

第二个选择,如果你想方便让设计者保持你的结构与数据库,然后你可以删除列或允许空编程方式,或许是下一个"//黑:"注释说明为什么。

其他提示

您可能在SQL Server表定义上使用DEFAULT NEWID(),因此问题可能是数据集设计器未将此列视为自动生成。

也许在您的应用程序代码中生成guid可能是一个解决方案?如果没有,那么您可以在数据集中设置默认值,但是您可能还必须更改DataAdapter插入/更新语句,以便不会将此默认值插入到Sql Server表中。

还有一些我不知道的其他解决方案......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top