powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ColumnChanging Canceled
4 сообщений из 4, страница 1 из 1
ColumnChanging Canceled
    #33163149
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то в OnColumnChanging запретить изменение? 4 example:
Код: plaintext
1.
2.
3.
4.
5.
static void dt_ColumnChanging(object sender, DataColumnChangeEventArgs e)
{
	if(e.Row[e.Column.ColumnName].ToString()==e.ProposedValue.ToString())
		CancelModify=true; // или что-то вроде этого
}
или это можно решить как-то по-другому? Просто необходимо запретить "изменение" значений, которые на самом деле не изменяются (что бы в последствии можно было бы корректно RowState заюзать). Сравнивать перед присваиванием - муторно...

/me И че они в set'ере проверку не сделали?..
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
ColumnChanging Canceled
    #33170559
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сделал так:



Private laststat As System.Data.DataRowState

Private Sub FDataTable_ColumnChanged(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles FDataTable.ColumnChanged
If e.Row.HasVersion(DataRowVersion.Original) Then If e.ProposedValue.ToString = e.Row(e.Column, DataRowVersion.Original).ToString And laststat = DataRowState.Unchanged Then e.Row.RejectChanges()
End Sub

Private Sub FDataTable_ColumnChanging(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Handles FDataTable.ColumnChanging
laststat = e.Row.RowState
If e.Row.HasVersion(DataRowVersion.Original) Then If e.ProposedValue.ToString = e.Row(e.Column, DataRowVersion.Original).ToString And laststat = DataRowState.Unchanged Then e.Row.RejectChanges()
End Sub
...
Рейтинг: 0 / 0
ColumnChanging Canceled
    #33170564
dma_caviar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, e.ProposedValue и e.Row(e.Column, DataRowVersion.Original) перед преобразованием в String неплохо бы на Nothing проверить
...
Рейтинг: 0 / 0
ColumnChanging Canceled
    #33219537
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуем зайти с другой стороны: можно ли как-то переопределить set'ер DataRow.Item (public object this[string] {get; set;})?
На предмет как нормальные люди делают:
Код: plaintext
1.
2.
if(Value!=NewValue)
  Value=NewValue;
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ColumnChanging Canceled
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]