ADO.NET Автономная работа и передача обновлений в БД

voffka
Дата: 28.08.2005 08:25:30
привет всем!!!
есть DateSet, в нем две таблицы, между этими таблицами установлен Relations
есть своя логика обновлений отложенных изменений.
у каждой таблици установлен автоинкремент
tbl = ds.Tables[1];
tbl.PrimaryKey = new DataColumn [] {tbl.Columns[1]};
tbl.Columns[1].AutoIncrement = true;
tbl.Columns[1].AutoIncrementSeed =-1;
tbl.Columns[1].AutoIncrementStep =-1;
tbl.Columns[1].Unique = true;
естественное каждая из таблиц DataSet привязана к гриду
обновление просиходит
новые клиенты
новые заказы
обновленные клиенты
обновленные заказы
удаленные заказы
удаленные клиенты

проблема:
когда происходит обновление
записи в гриде с заказами визуально пропадают
и появляются только тогда когда начинаешь двигаться по клиентам
еще
вопрос
использую в базе данных тип данных timestamp
как поймать ошибку возникающую при обновленнии
строки которую уже кто то обновил

Заранее спасибо!!!
Jammer
Дата: 30.08.2005 18:31:43
voffka
когда происходит обновление
записи в гриде с заказами визуально пропадают
и появляются только тогда когда начинаешь двигаться по клиентам

Я не на работе. и к сожалению не могу воспроизвести это у себя, но ИМХО надо запоминать позицию в DatGrid перед обновлением и затем по окончанию обновления переходить в неё заново.

Кстати грид 1 или их 2, я не понял?

voffka
использую в базе данных тип данных timestamp
как поймать ошибку возникающую при обновленнии
строки которую уже кто то обновил

В параметрах команд модификации Update, Delete использовать это поле
то есть при Update чтото типа
UPDATE Customers
SET ...... , ModifiedTime=?
WHERE ID=? AND ModifiedTime=?
у параметра ModifiedTime(первый):
.SourceVersion=Current
.Value=Now
у параметра ModifiedTime(второй).SourceVersion=Original

тогда если кто-то уже успел обновить данные до тебя, то
WHERE ID=? AND ModifiedTime=?
вернёт 0 строк и получим
System.Data.DBConcurrencyException
Additional information: Concurrency violation: the UpdateCommand affected 0 records.

voffka
Дата: 23.09.2005 17:16:45
да грида 2 конечно
Михаил Бор
Дата: 24.09.2005 11:56:59
Привет! Про какою VS толкуете Vs 2003 or VS 2005