我有一个.Net Windows窗体应用程序,我需要从数据库中的表中将值加载到一些组合框中。现在,Windows窗体应用程序似乎与.Net Web应用程序的工作方式不同。在阅读帮助信息后,我所做的是:
在VS2008的“数据源”部分创建数据集, 指定我想要的表和列返回
这个设置以及我表单中的其他三个对象的数据集,a “绑定源”对象,表适配器和tableadaptermanager。
在我的组合框中,我将datasource属性设置为新创建的 bindingsource对象,以及列的DisplayMember属性 与我想要添加的数据。到目前为止,非常好。
现在,时间来测试。我在调试模式下运行应用程序 - 组合框中填充了我期望的值。我选择一个值,发生回发,然后我在pageload处得到一个错误:ConstraintException未处理。列'name'被限制为唯一。我选择的价值'价值'已经存在。
好吧,有人不打牌我发牌。表适配器上的“ClearBeforeFill”属性设置为True,在page_load部分中,我甚至明确地在我的数据表上调用Clear()方法。我忘记了什么?
答案 0 :(得分:0)
我最终通过关闭基础数据集上的“EnforceConstraints”解决了这个问题。不知怎的,这对我来说似乎是“错误的”,但是.Net并不想像文档所说的那样工作,特别是TableAdapter上的“ClearBeforeFill”属性。