2010-04-01 3 views
0

Я хотел бы знать, можно ли отменить изменения только одной записи только одной таблицы в datacontext.Отменить обновление в datacontext = LInq

Я использую привязку данных для привязки элементов управления к форме. Я изменяю одну запись за раз. после изменения пользователь должен нажать кнопку сохранения для подтверждения. Но он может ударить. Я хотел бы, чтобы кнопка отмены отменила все изменения, сделанные пользователем. Является ли это возможным?

Ju

ответ

0

Спасибо за ваш ответ, я нашел решение, я перезагрузить DataContext, когда я ударил отменить. Это работает и это быстрее. Спасибо

2

Если вы не вызываете .SubmitChanges на DataContext, то изменения не будут применены к базе данных.

Это все о DataContext при рассмотрении отслеживания изменений ваших объектов.

Если вы хотите очистить все изменения, закройте файл datacontext и откройте новый.

+0

Да-й eproblem - это не вставка в D B. Проблема в том, что когда вы нажмете кнопку «Отмена», все изменения будут отброшены. –

+0

Я знаю, что ChangeSet можно получить с помощью DataContext.GetChangeSet, но я не уверен, что можно удалить, обновить или вставить изменения. В вашей ситуации я бы рассмотрел варианты применения каких-либо изменений за пределами объектов linq и применения их только в тех случаях, когда изменения действительно требуются. – SteadyEddi

2

Сделайте так, чтобы ваш диалог был немым интерфейсом. I.e, он обрабатывает все входные данные, но не сохраняет никаких данных. Так что, если вы используете диалоговое окно вызывается из формы - что-то вроде

If (myDlg.ShowDialog() = DialogResult.Ok) 
    MyDataContext.SubmitChanges() 
End If 

Таким образом, если ваш диалог не возвращает КИ (т.е. если они щелкают отменить, то DataContext обыкновения сохраняться Баком результатов в базу данных .

Это делает для многократного использования кода, а также.

+0

Привет, это хороший способ, который я не знал, но мои данные не находятся в диалоговом окне, а в пользовательском элементе управления. Так что спасибо –

Смежные вопросы