Click here to Skip to main content
13,006,530 members (62,401 online)
Rate this:
Please Sign up or sign in to vote.
See more:

How to automatically refresh ListView in WPF(periodically after 2 or 5 seconds).

I have 2 PC/Laptops sharing a centralize Sql Server table.

When user of first PC/Laptop update some information, It would be reflected automatically into second PC/Laptop.

When user of first PC/Laptop delete a row, It would be deleted from another as well.

When user insert a row either using GUI or Insert statement of Sql, record would be synchronized for all.

Your reply at the earliest is highly appreciated.

Posted 26-Dec-12 0:43am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Well, if be honest, it's not a trivial task ;)
Firts thing that comes to my mind is to implement timer , which will be every 2 or 5 seconds gather neccessary information and synchronize your table data.
But in this approach there are a lot of pitfalls, which needs to be workarounded.
Do you eligible to change the data (structure of db)?
In case of yes, i could advise to you, to create a utility table in db , and log all action to that table:
for example at 15:35 user A(PC1) add one row , when timer callback will be invoked it gather all data from that table by specified period of time and performs synchronization.

But this approach also not so smooth, as it requires a lot of query to DB...

Another one, which is more convenient (for my opinion!!!) is to do all kind of this stuff via SignalR framework, if you need more detail about that, let me know and i'll cover it!
AbhinandanKumar 26-Dec-12 7:16am
I have done it using SqlDataReader and a timer, but I am finding some simple and reliable solution.
I am also using two temp tabel for remark of record which is already loaded in ListView.
If Newer comes in table it comes in ListView.
Oleksandr Kulchytskyi 26-Dec-12 7:27am
"I am also using two temp tabel for remark of record which is already loaded in ListView." - Why so complicated ?)
You can be easily bounded with only 1 table, in which you will write every action which affected table that you are observed.

Approach with SignalR by it nature will be robust and reliable!
But it requires some experience in web.
But one bigger advantage of it, with help of SignalR you can easily get rid of unneccessary stuff with observing temp tables and performing sync.

Lets quickly go through:
Your apps conneced to a SignalR hub, the for CRUD operation they will use this hub.
For example app on PC1 removes record with ID = 1, On Hub side SignalR performs delete operation , after delete was succeed, Hub will notify the rest of the client about delete operation , and all app on differ PF will receive notification abou that and do appropriate actions for sync ListView
AbhinandanKumar 3-Jan-13 2:52am
Have you any code for that?
send me the code or link please..

no need of explanation..
Oleksandr Kulchytskyi 3-Jan-13 4:30am
Nope, it's require self implementation and self design.
About SignalR , you can read here

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web01 | 2.8.170628.1 | Last Updated 26 Dec 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100