我正在使用 Visual Studio 2008 编写一个小型 C# 社会会员应用程序,并使用 .Net 3.5 和 SQLite 编写新的数据层。
我使用各种向导来生成我的主窗体,其中有一个 BindingNavigator 和一个 BindingSource。这个想法是表单显示 1 条记录,您可以更新记录,并使用 BindingNavigator 控件导航到其他记录、添加记录、删除记录等。
每当用户导航到不同的记录(或关闭表单)时,我希望将当前记录写回数据库。
成员记录中有一个自动编号字段(我打算与应用程序中的其他表建立关系)。
一切正常,除非我添加新记录。新记录已保存,但此后任何更新数据的尝试都会在标题中显示错误消息。
我意识到这是因为保存数据时自动编号字段尚未添加到数据集的本地副本中。但是我不知道在哪里放置一些代码来检索自动编号 ID 并将其填充到新记录中。
我可以将代码放在为数据表生成的代码的 Insert 方法中,但是下次我在设计器中更改任何内容时,我的更改将丢失,而且我不确定 Insert 方法是否真的被调用(在那里放置断点不会'似乎没有停止)。
我用谷歌搜索了一个答案,发现一个建议我在数据表设计器的高级配置设置中选中“更新后刷新”复选框,但这并没有改变生成的代码,或者有任何影响(当我回去的时候看,复选框再次取消勾选)。
补充问题 - 哪里是阅读 DataBindingNavigator、DataBindingSource 和新生成的数据类如何组合在一起的最佳位置?
最后,如果您看到我提出的另一个类似问题,我们深表歉意。我本可以发誓我昨天问了一个,但我在这里找不到它,所以我假设它从未发布过。