How can I have my application notify me of someone is looking at the same record in the database

Please help
  I am updating an c# application to tell me when someone has the same application open on a different browser and looking at the same record I am. I need for it to say " Record open by username" or something to that aspect
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

David Johnson, CD, MVPOwnerCommented:
Simple answer is not possible.
vcurtisAuthor Commented:
can you psedo code it, or do you have a reference or sample code
Russ SuterSenior Software DeveloperCommented:
It is possible. I've done it with webforms but not with MVC (yet).

You'd need to write additional code to manage session state in such a way that some session data is registered in a global variable which is accessible by all active sessions. For example, whenever a user accesses a record in a database you can store the Id of that record in a global array. You can then have each session query the array to find out if the item is already in the array. If it is, someone else is using it.

You do need to be careful though to make sure that you manage the array correctly which means inserting the element when the record is being accessed but more importantly removing it when the resource is freed. This can become an issue if the user just closes the browser window because the server has no way of knowing that the client is no longer there. The Session_End method in global.asax can help you with that but then you'll have a locked record on an abandoned session until the session finally times out.

A more responsive approach might be to have the client check in periodically using an Ajax call. If it misses, say, 3 consecutive check-in intervals you can assume the session has been abandoned.
Protecting & Securing Your Critical Data

Considering 93 percent of companies file for bankruptcy within 12 months of a disaster that blocked access to their data for 10 days or more, planning for the worst is just smart business. Learn how Acronis Backup integrates security at every stage

Carl TawnSystems and Integration DeveloperCommented:
I've seen this sort of thing before in scenarios when another user has the record open for editing, but not just for viewing. The difficulty with web applications for this sort of thing is knowing when the user has finished looking at a record.

Is it actually viewing the record you want to know about, or is it just if somebody is actively editing it?
vcurtisAuthor Commented:
Thank you for your comments.

additional information
1) I want to know when someone is looking at the record, therefore blocking them from editing
2) I am using webforms. so if anyone has any sample code or examples. I would grately appreciate it
David Johnson, CD, MVPOwnerCommented:
webforms are stateless.  just because a record is visible and even if you start to edit it and then disconnect  there is no way of if you locked the record to unlock the record.
will this idea work?

have a flag column in your table which is set it to true when any user opens it. and after saving/cancelling the record, the flag should set back to false. Or else you can have userid (who is viewing currently) as a new column in your table and set it to zero when editing/cancelling finished.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
vcurtisAuthor Commented:
Awesome answes, Thanks for the help
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.