gpt4 book ai didi

c# - 我如何让这个数据集添加我的新行并正确更新?

转载 作者:可可西里 更新时间:2023-11-01 12:08:07 25 4
gpt4 key购买 nike

一般来说,我是 C# 和 .NET 的新手,来自 FLOSS 背景(主要是 PHP、Python 和 Ruby)。我已经使用数据源配置向导连接到 MDB 文件(不幸的是需要这样做,因为使用它的应用程序是 5 年前编写的,目前是连接到 Access 数据库的 VB6 应用程序)。该向导创建了一个数据集类 JobDataSet,其中包含以下数据表(以及其他):ItemType、Item。项目修订

在 MDB 中,这些映射到下表:

ItemRevisions (  ID: AutoNumber PK,  JobNo: Text,   ItemTypeID: Number,   ItemNo: Number,   RevisedAt: Date/Time,   RevisedBy: Text,   ItemID: Number)Items (  ID: AutoNumber PK,   JobNo: Text,   ItemTypeID: Number,   ItemNo: Number)ItemTypes: (  ID: AutoNumber PK,   Type: Text)

无论如何,下面是不起作用的方法的代码:

private void AddJobItem(){    itemTypesBindingSource.EndEdit();    JobDataSet.ItemsRow itemsRow = jobDataSet.Items.NewItemsRow();    itemsRow.ItemTypeID = long.Parse(comboBoxItemType.SelectedValue.ToString());    itemsRow.JobNo = JobNo;    itemsRow.ItemNo = (long)numericUpDownItemNo.Value;    jobDataSet.Items.Rows.Add(itemsRow);    jobDataSet.Items.AcceptChanges();    itemsTableAdapter.Update(jobDataSet.Items);    JobDataSet.ItemRevisionsRow itemRevisionsRow = jobDataSet.ItemRevisions.NewItemRevisionsRow();    itemRevisionsRow.ItemTypeID = long.Parse(comboBoxItemType.SelectedValue.ToString());    itemRevisionsRow.JobNo = JobNo;    itemRevisionsRow.ItemNo = (int)numericUpDownItemNo.Value;    itemRevisionsRow.RevisedAt = System.DateTime.Now;    itemRevisionsRow.RevisedBy = Program.AuthForm.Username;    itemRevisionsRow.ItemID = itemsRow.ID;    jobDataSet.ItemRevisions.Rows.Add(itemRevisionsRow);    jobDataSet.ItemRevisions.AcceptChanges();    itemRevisionsTableAdapter.Update(jobDataSet.ItemRevisions);    jobDataSet.AcceptChanges();}

基本上,问题是,就对象属性而言,一切都已正确设置(通过单步执行调试器并查看相关对象的值来检查这一点),没有抛出异常。但是主键保持 -1 而不是设置为实际的数据库 ID,并且数据从未真正添加到表中。我确定我在这里遗漏了一些简单的东西(就像我说的,这是第一个 ADO.NET 断开连接层应用程序的新手),所以如果有人可以提供帮助,我们将不胜感激。

最佳答案

通过在使用适配器之前调用 AcceptChanges,您基本上是在说数据集中的所有数据都是未修改的并且是最新的。因此适配器什么都不做。在通过数据库运行它之前不要调用 AcceptChanges,只有当数据库操作成功时,“AcceptChanges”才有意义

关于c# - 我如何让这个数据集添加我的新行并正确更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3771968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com