【发布时间】:2010-09-22 04:56:31
【问题描述】:
所以,这是我对这个常见问题的独特见解。
我进行查询,获取我的对象,然后将对象传递到一个表单中,在该表单中它使用来自对象的数据填充表单(这不是通过引用传递的)。
然后我编辑被查询的对象的值(通过表单),然后返回一个从表单中的值构造的新对象。
然后我想将其更新到数据库中。 Attach 什么都不做(运行但不更新)。 SubmitChanges 也不做任何事情(一起使用时两者都不做)。
我错过了什么?
更新:这是我正在使用的代码:
// In constructor
_dataMap = new DataMapDataContext();
_addresses = _dataMap.AddressItems
.Where(address => address.InsertUserName == _currentUser.Name).ToList();
public void EditButtonClick()
{
using (AddAddressForm form = new AddAddressForm(_addresses[_currentAddress]))
{
form.Text = "Edit Address";
if (DialogResult.OK == form.ShowDialog())
{
_addresses[_currentAddress] = form.Item;
_dataMap.SubmitChanges();
DisplayItem();
}
}
}
【问题讨论】:
-
老兄,你昨天问了这个问题,我回答了(并且被勾选正确)-stackoverflow.com/questions/3756890/…这是什么问题?
-
另外,发布您尝试过的代码,但它不起作用 - 否则人们会“猜测”您已经/尚未完成的事情 - 以下答案就是一个示例
-
@RPM1984 - 是的,它们非常相似。但这一个是插入的更新。 (我认为 InsertOnSumbit 不适用于更新的项目)。
-
所以让我做对了,您要在构造函数中更新 DataContext,将其设置为公共实例变量,然后尝试在单击事件中对其添加一些更改?真的没有意义。你在哪里处理上下文?什么是 AddAddressForm (以及为什么在使用中)。 @Naaeem 的回答基本正确(除了代码应该用 using 包装)
标签: c# linq-to-sql