我是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] 举报,一经查实,本站将立刻删除。