C#实现多线程读取同一张数据表,用户获取不重复记录,怎么实现!

比如有10个用户同时读取数据库表A的数据,表A有100条数据,每个用户限制读取10条,怎么实现每个用户读取的10条数据不是重复的!我说的数据重复是指比如D用户读取了前10条,那F用户读取的数据就不会是在前10条内!还要考虑是否有用户更新数据表A问题!
对多线程一直很模糊,求高手解答!
求高手解决!脑子都进水了还没想出来。高手们别藏匿了,求解决方案!

这个可以通过修改数据的时间来判断。
例如:
表中有个字段 读取时间。
当这个客户读取10条数据的时候,更新读取时间为当前时间。
然后下个客户读取的时候,判断时间在半个小时内,没有更新的数据。就OK了。
不过这个也有一点不好的地方就是 很可能半小时后 第一个客户还在使用这十条数据。

如果是修改数据的话 楼主可以 把数据库表使用锁定功能,把锁住 这样就不担心重复提交的情况。

希望楼主早日解决问题~~~追问

感谢回答,如果用字段的形式去解决。方法太多了。这是不可取的。

追答

冒昧的问下,楼主这软件是只是客户端还是有客户端有服务端。
如果是只是客户端的话,那么只有在数据库做操作,
如果是由客户有服务端,那么可以在服务端做操作,比如存储临时数据等!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-18
想要直接在数据库中实现,一个字“太难!”,可以考虑在服务端处理,在服务端建立单例,提供数据查询统一入口,对数据库数据进行分配!
第2个回答  2013-07-18
暂时没有想到太好的办法。 只有 每次读出来的10 再插入到另一张表。追问

这个太不科学了,还不把如把数据装个临时表,原表数据更新同时更新零时表。
不过问题又出来了,怎么解决获取不重复的呢?获取之后我在临时表的数据已经没了。怎么更新获取过这些数据的用户呢?好纠结的说。也许是我走进了一个误区,两天了。没搞定,头大。

相似回答