问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

你好,我按照你说的方法,环境已经搭建好了,想本地安装一个网站系统,zzcms,它基于asp和sql。

发布网友 发布时间:2022-05-01 23:48

我来回答

3个回答

懂视网 时间:2022-05-02 04:09

  之前写一些小工具的时候,需要用到数据存储方面的技术,但是用数据库又觉得太大了,本地文件存储txt文件存储又不是很规范,于是乎想到了去编写一个简单的基于本地文件系统的数据存储库,暂且叫它localdb吧,总之也是为了方便使用,特别是数据量不大,但是又特别想要本地数据存储的。(抛开access不说)

一、工具

  工欲善其事必先利其器,存储数据必然要有一个标准的数据格式,首先让我想到的就是json,xml,原因不必多说。所以下面编写的数据主要以json作为存储格式。json操作用Newtonjson,操作方便简单。

二、文件系统的操作(LocalFileDB)

  本地数据库,必不可少对本地文件进行操作,所以对本地文件的读取创建统一管理,话不多说,直接上代码。

  首先添加自定义的异常:

技术分享
 /// <summary>
 /// 文件数据库异常
 /// </summary>
 public class FileDatabaseException : Exception
 {
 public FileDatabaseException(string message)
  : base(message)
 { }

 public FileDatabaseException(string message, Exception innerException)
  : base(message, innerException)
 { }
 }
View Code

  然后是具体操作文件的代码(这块有参考别人的,仅供学习使用,如有侵权,请联系我):

技术分享
 /// <summary>
 /// 文件数据库,这是一个抽象类。(之前做的拿来用的,也可以应用于xml,但已有linq to xml,所以这边暂时仅用于json)
 /// </summary>
 public abstract class FileDatabase<TEntity>
 {
 #region Fields

 /// <summary>
 /// 文件数据库操作锁
 /// </summary>
 protected static readonly object operationLock = new object();
 private static HashSet<char> invalidFileNameChars;

 static FileDatabase()
 {
  invalidFileNameChars = new HashSet<char>() { ‘