问一个弱弱的问题:每次使用应用程序时,使用DataTable处理数据,完了,把DataTable序列化成一个.dat文件,下次使用时,再反序列化。
如此说来,数据库(比如Access)岂不是排不上用场吗?

解决方案 »

  1.   

    序列化就是把一个对象保存到一个文件或数据库字段中去
    在进程下次启动时读取上次保存的对象的信息   
    在不同的AppDomain或进程之间传递数据   
    在分布式应用系统中传递数据   
      

  2.   

    简单来说,这就是结构化存储和非结构化存储的区别你的方法在小数据量,特定应用是非常适合的,但如果datatable中有10w条记录,现在修改一条你就需要重写这个dat,开销相当大,另外如果只是查询一条记录你也需要重新将这个dat所有内容加载到内存建立对应的对象。另外这个dat不能给其他程序使用,不能进行多进程访问,不能变化语言,如果是Java肯定不能'简单'解析。Access, SQL Server可以简单理解做了2件事情,第一他提供了统一界面,任何语言任何进程通过sql都可以与之通讯,获取数据。第二件事情他提供了索引机制,通过索引不需要加载所有数据到内存就能根据sql定位查询结果。但是如果你的应用很小,内存足够hold住数据,且不需要实时保存,那么你的方法是可行的,而且可以说比用access都好,呵呵。具体问题具体分析,合适就好。