0
我已經遇到下列情況下編輯值:異常由BindingSource.MoveNext拋出取消對數據源
try
{
Validate();
myBindingSource.MoveNext();
}
catch
{
if (MessageBox.Show("Do you want to keep editing the record?", "Error",
MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No)
{
myBindingSource.CancelEdit();
}
}
其中myBindingSource.Datasource是驗證一個DataTable和數據綁定文本框更新。
我將當前記錄的數據綁定文本框更改爲無效狀態(例如重複的主鍵)。當我調用上面的代碼片段時,自然會引發異常。
在catch塊中,datable行的字段值已恢復爲其原始值,但文本框值保持不變(我想要相同的文本框值)。
如果我再次調用相同的代碼片段,則不會引發異常(DataTable具有正確的值)。
我的問題是如何讓文本框再次將其數據發送到DataTable?
P.S.如果在第一次調用代碼片段之後更改文本框的值,DataSet將接收到更改。
難道你需要一個else後MessageBox如果他們選擇是..?代碼的其餘部分在哪裏..? – MethodMan
也是你在try {} catch {}聲明中捕獲的異常類型。你想要做的是將文本存儲在一個屬性或其他受保護的變量中,然後再次調用發送數據的方法..如果我正確理解你的話。 – MethodMan
catch {}捕獲所有異常。 else部分缺失,因爲我不知道如何將DataTable恢復到每個以前的狀態。雖然第二次驗證不會導致DataTable獲取textbox.Text值,但兩次觸發文本框事件「驗證」。 – Blim