我现在还在试用期,老板让我开发我们公司电能质量监测系统的WEB功能。数据库很大,包括很多实时电能数据,要考虑实时数据的及时刷新以及多WEB用户并发连接。我采用的方案是以DataSet为核心。我的理解也一直是ADO.NET就是以DataSet为核心。现在方案被老板否定掉了,而且我还没有抓准她的意思,各位高手给指点指点。下面是她的话:“关于数据库连接的技术试验完全没有试到点子上。用Dataset 存储远程数据表来代表实际的数据库连接是不现实的,我们的系统数据库表太大,不可能全部搬到本地来。你没有理解 我的意思。 我的意思是,不把数据库处理与C#的用户界面放在一起处理,用户界面的的响应处理与数据库处理分开,用专门的线程或程序段管理数据库连接(主要通过SQL 命令或存储过程读取特定查询结果)和查询结果,用户界面通过调用类来得到处理结果,不与具体的数据库表打交道。由于WEB客户端可能并发多个连接,因此会同时有多个数据库查询请求,要求程序能用一个机制处理这些并发请求。 需要重新做试验及写结果。”

解决方案 »

  1.   

    你老板说的非常对,用DataSet是把数据读到了内存中,如果用的太多就会占用很大的服务器内存.另外,数据库访问和业务逻辑分开,业务逻辑和用户界面分开,不错.
    你老板是女的?那个公司的,多大了,长得怎么样?介绍一下.
      

  2.   

    多谢jimu8130(yang)指点。
    传统三层是什么意思啊?B/S结构不就是三层的嘛,用.net开发的WEB程序就是三层的阿。
    你的意思就是用类封装对数据库的操作对不?那么不同的查寻都放在同一个类中还是不同的查寻用不同的类封装阿。
      

  3.   

    >>我的理解也一直是ADO.NET就是以DataSet为核心
    哈哈 你的理解很有意思>>数据库很大,包括很多实时电能数据
    很多应用都是数据库很大 也是包含很多实时的数据首先,你的思路大概有点乱了
    你应该先分析考虑 实际的情况,把实际的问题理清楚,
    比如说,需要读取的数据最多的是什么数据,每分钟大概有多少用户并发访问
    哪类数据是需要实事更新的把这些东西都要搞的清清楚楚,然后你再考虑用什么方法来解决问题
    也就是说再来研究是用ASP.NET + ADO.NET 或者还是其它的技术例如Java等来解决你一出发就考虑的太细致 都已经考虑到SQL语句或者存储过程的问题了.
    站的高度不够
      

  4.   

    解决的方法是老板定的阿ASP.NET+ADO.NET
      

  5.   

    访问数据库的操作如果很多
    构造一个数据库操作的类,接管所有的数据库访问
    然后需要数据库连接池 Connection Pool
    ADO.NET 支持连接池如果有些数据访问很频繁,
    需要使用Cache, 根据访问的内容,指定特定的CacheKey
    在读取常用数据的时候,首先根据CacheKey到Cache里面找 相应的内容
    如果没有,就到数据库里面读取,读取之后存入Cache里面
    要是数据在Cache里面,访问就会非常的快。