Click here to Skip to main content
11,482,402 members (74,433 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: WPF
Hi,

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.

Thanks,
Posted 26-Dec-12 1:43am

1 solution

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

Solution 1

Well, if be honest, it's not a trivial task Wink | ;)
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!
  Permalink  
v2
Comments
AbhinandanKumar at 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 at 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 at 3-Jan-13 2:52am
   
Have you any code for that?
send me the code or link please..

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

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



Advertise | Privacy | Mobile
Web01 | 2.8.150520.1 | Last Updated 26 Dec 2012
Copyright © CodeProject, 1999-2015
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