gpt4 book ai didi

c# - 为什么 SubmitChanges 不起作用?

转载 作者:行者123 更新时间:2023-11-30 21:07:48 26 4
gpt4 key购买 nike

我正在使用自定义存储过程从我的数据库中检索数据:

tbTextBox.Text = db.getSettingValue("PropertyName").First().Value;

(db是一个全局的DataClasses对象,在FormLoad事件中初始化)

这部分工作完全正常,它在一个循环中重复(定时器间隔 30 秒)

如果用户更改文本框的值,将触发以下代码:

private void tbTextBox_TextChanged(object sender, EventArgs e)
{
if (tbTextBox.Text != db.getSettingValue("PropertyName").First().Value)
{
db.Settings.Where(n => n.Name == "PropertyName").First().Value = tbTextBox.Text;
db.SubmitChanges();
}
}

如果我在 submitChanges 之前创建对象并更改其值 - 结果相同。我已经对其进行了调试,它并不像它永远不会通过我的 IF 语句;)

为什么它不起作用?那里没有异常(exception)...如果我使用 SQL Server Management Studio 查询设置表,数据库中没有任何更改。

编辑 1:

db.Settings.Where(n => n.Name == "AvailablePeriods").First().Value = tbPeriods.Text;

var a = db.Settings.Where(n => n.Name == "AvailablePeriods");
var b = a.First();
var c = b.Value;

b.Value = tbPeriods.Text;

var d = db.GetChangeSet();

db.SubmitChanges();

我已将代码分成更小的步骤以便正确调试它。一切正常,但是... Changeset 不返回任何更新。对于下一步,我将尝试按照建议使用“附加”。

编辑 2:添加PK解决了问题。现在一切都像魅力一样。

经验教训 - 我不应该太相信自己 :)

最佳答案

直接从数据上下文更新数据并不是更新表的方法。使用 Attach Method如果数据已经存在或 InsertOnSumit 如果它不存在

关于c# - 为什么 SubmitChanges 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108003/

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