【发布时间】:2012-08-26 11:18:50
【问题描述】:
我正在用 c# 创建一个需要嵌入数据库的应用程序,我添加了一个新的 Service based Database 。我将它添加到应用程序中,我通过designer 创建了一个表并向其中添加了数据。在这里,我开始面临问题。我能够添加新记录,但无法编辑任何行。我注意到一个奇怪的行为。
- 当行只有 1 或 2 时,我可以编辑它们而无需任何 问题。
- 但是当行数变得更多时,比如 7 行中的 5 行,我无法 编辑任何行,
我遇到了一个错误
更新或删除的行值要么不使行唯一,要么 他们改变了多行
我既没有提到唯一约束也没有提到非空约束。所有列的数据类型均为text。我不确定是什么导致了这个问题。谁能解释一下这是怎么回事?
PS:有时,我也会收到屏幕截图 2 中所示的错误。对于这种情况,当我点击 Execute SQL 时,数据会被插入。
***After using an Identity column, the issue is solved. Thanks a lot guys :)
现在出现了另一个问题,我可以在设计器中进行编辑,但我也有一个绑定到数据库的 dataGridView,我无法在其中编辑(更新)值,有什么建议吗? 这是代码,我正在使用
private void saveButton_Click(object sender, EventArgs e)
{
this.Validate();
this.core3BindingSource.EndEdit();
this.core3TableAdapter.Update(this.coreDataSet.Core3);
}***
【问题讨论】:
-
旁注:您应该避免使用
text、ntext和image- those datatypes have been deprecated - 改用(n)varchar(max)和varbinary(max)跨度> -
您的表是否设置了主键字段?您可以将表定义添加到问题中吗?
-
非常感谢您的解决方案和 cmets 伙计们,问题在设计器视图中已解决,但在绑定到同一个数据库的 dataGridView 中我仍然面临同样的问题。我无法编辑(更新)。请检查我更新的问题。
标签: c# sql-server-2008