我從我的數據庫使用自定義存儲過程中檢索數據:爲什麼SubmitChanges不起作用?
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語句;)
爲什麼它不工作?在那裏沒有例外...如果我使用SQL Server Management Studio查詢Settings表,那麼數據庫中沒有任何更改。
EDIT1:
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解決了這個問題。現在一切都充當魅力。
課學 - 我不應該相信自己太多:)
datacontext日誌說什麼? – leppie 2012-04-11 14:31:36
_'it就像它從來沒有通過我的IF語句'__你有沒有調試並確認正在執行的事件處理程序,以及是否正在評估條件? – 2012-04-11 14:31:54
它不是像...錯字 - 對不起 – 2012-04-11 14:34:55