asp.net当然可以解决阿
因为他不用跟server一只连接着
我给你说个大概的意思吧!(不知道你有没有学过ASP.NET,就当你学过了,^_^)你用ADO.NET先连接上数据库,然后执行“条件一”的筛选,然后就关掉该用户的连接,然后给客户端返回一个DataSet,里面包含了这次筛选出来的数据项,然后其他的操作又客户端自己执行(也就是说筛选二和筛选三在刚才返回给客户端的DataSet里面做,由客户端去做)还有,不明白你说的重复是什么意思,如果重复的意思是“完全一样”的话,你完全可以做一个已经筛选好的子数据库阿。
因为他不用跟server一只连接着
我给你说个大概的意思吧!(不知道你有没有学过ASP.NET,就当你学过了,^_^)你用ADO.NET先连接上数据库,然后执行“条件一”的筛选,然后就关掉该用户的连接,然后给客户端返回一个DataSet,里面包含了这次筛选出来的数据项,然后其他的操作又客户端自己执行(也就是说筛选二和筛选三在刚才返回给客户端的DataSet里面做,由客户端去做)还有,不明白你说的重复是什么意思,如果重复的意思是“完全一样”的话,你完全可以做一个已经筛选好的子数据库阿。
将a、b、c表的数据读取到客户端的缓存--DataSet中,这样以后的处理就都在客户端本身了。可以通过DataTable.Select 方法(获取 DataRow 对象的数组)和DataTable.Rows.Find方法(获取包含指定主键值的行)进行过虑处理,就是你上面提到的条件一、二、三。具体怎么使用这两个方法你可以查一下MSDN的帮助。
所以建议一个比较合理的解决方案。
1.在本地一台机器上(作为数据库服务器)保留一份数据库的Copy。
2.专门针对性的开发一个客户端查询分析程序,对本地的数据库copy进行数据抽取、分析。
3.本地数据库和远程服务器上数据库可以用Sql Server(以Sql Server为例 )的复制进行实时同步,或定时同步,再不行也可以手工隔一定时间进行同步()因为大量数据分析工作一般不会是随时随地都需要的)
我得意思并不是把所有的表的所有记录都一次性地读取到本地,而是部分,比如说根据楼主的第一个条件,这样初步过虑一下,再读取到本地,数据量也不会很大,其他的条件二、三就可以在本地处理,这样既可以减轻服务器的负担,也可以减少网络的负担。同时查询速度也是很快的。
to jjcccc() :
你所说的情况对于银行系统或者其他类似系统可能比较实用,但是大多数情况都不是很适用吧。
对于一般用户,不应该去做【在本地一台机器上(作为数据库服务器)保留一份数据库的Copy】,再说也没有必要呀,更何况在处理这个Copy的过程也一样要占用网络资源的。如果说是一个总公司对应几个分公司,或者银行的总行对应多家分行,这样处理倒是有可能也有必要。但是如果是一个网站(专门提供某些信息查询服务的),对一般用户,想必都没有必要安装sqlserver,更何况做上述处理。所以我觉得比较合理的应该是对这些表做一些分类分批查询。
http://expert.csdn.net/Expert/TopicView1.asp?id=2291055
如果你可以将三张表按照第一范式做成一张表,就可以解决条件问题了.
如果你的条件为有限项(如第一个条件只有可能出现3种情况),你就可以使用视图将有限条件做成不同的视图(应为数据库视图比动态视图要快)然后在这些视图中作第二次过滤得到一个结果集,利用dataset或dataview将结果集保存到客户端内存(webform为web服务器端),然后在根据第三个条件对dataset或dataview过滤.
我就是这个意思阿
^_^
大家看法一样,嘻嘻
1.以存储过程按条件-1来取回满足条件-1的所有记录.
2.在client端处理 条件-2和 条件-3.
3.如果有时间的话作一个com元件安装于ms mts环境来完成setp1,2的工作.
B.asp.net 下的解决方案:
1.以存储过程按条件-1来取回满足条件-1的所有记录.
2.在client端以dataset来处理 条件-2和 条件-3.
C.
要有自信! 祝你好运!