日期:2014-05-20  浏览次数:20512 次

蛮急~~~~~~~~~~~公共模块并发操作
我有个页面是动态的Gridview,通过传递的参数来显示不同的数据表
传递来的参数从Request中获取,我把生成的datatable声明成static的
然后参数变更的时候重新查找数据库,但是当用户在不同的数据表,同时查询的时候
就会产生并发,怎么解决呢?我留下QQ希望有解决方案的加一下我,QQ:20808165
谢谢了啊,急着等方案


------解决方案--------------------
除非全局变量(比如连接字符串),在ASP.NET中是不能使用static的,这会导致任何一个用户的改变会影响所有用户。
------解决方案--------------------
一个懂行的程序员看到static就想到其业务领域的意义,而那些比较弱的程序员则只能想到性能而不会从应用领域看问题。
------解决方案--------------------
为什么把生成的datatable声明成static的?
------解决方案--------------------
不要用static,如果非用static的话,可以把它做成static方法,返回一个datatable
------解决方案--------------------
static Dictionary <string,DataTable> cache;

其中参数给出SessionID作为索引键。

从应用领域想问题,不是需要一个糊涂的缓存,而是要对每个操作会话分别有一个缓存。