微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何获得这个数据集来添加我的新行并正确更新?

我是C#和.NET的新手,来自FLOSS背景(主要是PHP,Python和Ruby)。 我已经使用数据源configuration向导来连接到一个MDB文件(不幸的是需要这样做,因为这个应用程序使用的是5年前写的,而且目前是连接到Access数据库的VB6应用程序)。 该向导创build了一个DataSet类JobDataSet,其中包含以下DataTables:ItemType,Item。 ItemRevision

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

ItemRevisions(

ID:AutoNumber PK,

JobNo:文本,

ItemTypeID:Number,

编号:编号,

修改date/时间,

RevisedBy:文本,

ItemID:号码

项目(

ID:AutoNumber PK,

JobNo:文本,

ItemTypeID:Number,

货号:号码

ItemTypes :(

ID:AutoNumber PK,

types:文本

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

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();

}

基本上,问题是,就对象属性而言,所有东西都可以正确设置(通过debugging器单步检查并查看所讨论对象的值),不会引发任何exception。 但主键保持-1而不是设置为实际的数据库ID,并且数据永远不会实际添加到表中。 我敢肯定,我在这里错过了一些简单的东西(就像我刚才说的,首先ADO.NET断开层应用程序),所以如果有人可以帮助它,将不胜感激。

连接到sql Server 2008 R2 Express时出错

如何在Excel工作表内插入行对象表单?

通过在使用适配器之前调用AcceptChanges ,基本上说数据集中的所有数据都是未修改的且是当前的。 适配器将因此不做任何事情。 在通过数据库运行之前不要调用AcceptChanges,只有在数据库操作成功时才​​有意义,“AcceptChanges”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐