može biti da neću biti od neke pomoći ali, moj odgovor je - nikako. Barem ja ne znam kako.
naime, u ado.net se koristi (barem ja koristim) tzv. "optimistic locking" što se svodi na to da svako u data set-u menja šta mu je volja, a kod update-a se detektuje nešto tipa da li je "dataset.original row = database.current row". ako jeste, update se izvrši i to je to. ako nije, okida se odgovarajući exception, koji ukazuje da je neko menjao taj record u međuvremenu, pa aplikacija mora da razreši konflikt. Problematika se komplikuje ako treba da se izvrši update u više tabela data set-a u istoj transakciji.
S druge strane, uvek sam imao neki način da izbegnem konkurentni update nad istom vrstom: jedan korisnik je zadužen za jednu tabelu, ostali je samo čitaju. Ako i rade istovremeno nad istom tabelom, onda rade samo insert. Ili, ako i rade update, nema šanse da update-uju isti slog u istom trenutku. To sam definisao u fazi logičkog dizajna baze.
Jedino što bih mogao da predložim jeste da proveriš koliko je zaista verovatno da će 2+ korisnika istovremeno "napasti" isti record. Pre toga proveri koliko je zaista potrebno da više ljudi petlja nad istim podacima - proveri business use case.
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -Brian Kernighan