刚才跟几个群里的朋友讨论Dataset到底是以xml形式存在服务端还是存在客户端,有人说在服务端,有人说在客户端.我在网上找到了一篇文章
浅谈ADO.net技术中的DataSet工作原理(http://blog.sina.com.cn/s/blog_4b3c8902010005t5.html),这里说
...首先,我们打开数据库,把我们要处理到的数据库下载到本地计算机中的内存中,这样我们就在本地建地了一块内存,用来专门存储数据库,这样我们不但可以在我们自己的内存中把从服务器中下载下来的数据库存下来...这个意思是说:dataset下载到了本地内存中.那意思就是说dataset是在客户端的内存中运行了.然而我测试了一下.打开一个用dataet提供分页的网页.有5页,当前是第一页,断开网(禁止网络连接)再去打开第2页的时候就报错显示不了页面,也就是无法从客户端打开第2页,既然dataset是保存在客户端的怎么又会打不开呢?兄弟们来讨论一下吧!

解决方案 »

  1.   

    这个客户端是指数据库的客户端,即你的web服务器.
      

  2.   

    cpp2017(慕白兄) ( ) 信誉:100 这个客户端是指数据库的客户端,即你的web服务器.web服务器的数据库客户端?不太明白.谁有dataset的工作原理详细说明的.在msdn里找不到?
      

  3.   

    web服务器也就是asp.net程序,而在程序中要调用数据库,因此相对于数据库服务器来说是客户端,再说了dataset都是运行在服务器端的,怎么和客户机有关呢,dataset是连接数据库,调用数据库里数据(通过dataadaptor中间桥梁),存储在内存中,供数据控件所调用.
    -------------------------------------------------------------
    而这些服务器端控件通过运行加载在服务器端,然后服务端将IE浏览器识别的代码通过HTTP协议发送到客户端(客户机),最终呈现出加载后的网页.
    --------------------------------------------------------------
    楼主要先把一些原理搞清楚.
      

  4.   

    数据库下载到本地计算机中数据库服务器->web服务器
      

  5.   

    我觉得是数据是存放在服务器端的.
    楼主的测试已经说明了问题.dataset是把服务器端数据库中的数据读入服务器端的内存中的.因此当数据库过大时,服务器端的内存消耗是很大的.所以一般不用的时候就要马上dispose掉它.
      

  6.   

    dataset肯定是在服务器的内存中,因为asp.net程序是在服务器端执行的,执行结果由服务器发送到客户端.