【问题标题】:How to store the database in the installation folder w/o user being able to access it? (C#)如何将数据库存储在安装文件夹中而用户无法访问它? (C#)
【发布时间】:2011-12-02 08:52:02
【问题描述】:

我从来没有在随机程序的安装文件夹中看到数据库文件,但他们显然有一个。我的问题是他们是怎么做到的?

编辑:我的数据库可以在 SQL Server、MySql 或 Access 上,我不介意,但是我希望客户端不必下载 SQL Server 或任何其他程序就可以使用我的。

【问题讨论】:

  • 您有什么特别的计划?为什么他们使用数据库很明显?你想达到什么目的?你有什么问题?
  • 我的程序是一个加密引擎(用于 uni 项目的 md5 sha1 等)我有一个数据库,其中包含用户、加密历史我指的是保存您的操作历史的游戏或程序主要是当我说很明显他们有一个我想知道是否有一种方法可以使数据库在程序执行期间不可读
  • 好的,您对客户端不必下载 sql server 等的编辑确实使问题变得一团糟。那应该是一个完全不同的问题的主题。

标签: c# database installation


【解决方案1】:

您永远不会在安装文件夹中看到数据库文件,因为安装文件夹是用来存放程序的,而不是用来存放数据的。数据会进入 appdata 文件夹,例如“C:\Documents and Settings\User1\Application Data\Company1\Application1”或“C:\Users\User1\AppData\Company1\Application1”,具体取决于您的操作系统。

【讨论】:

  • 好的,谢谢,我如何使我的数据库位置动态(在我的连接字符串中)?
  • 如果您正在开发一个winforms应用程序,您可以使用System.Windows.Forms.Application.UserAppDataPath
  • 非常感谢,如何将数据库安装到应用数据文件夹?我有我的安装项目,但我看不到在我需要的地方安装数据库。有什么想法吗?
  • 对不起,我帮不上忙。可能值得发布一个单独的问题。
【解决方案2】:

我从来没有在随机程序的安装文件夹中看到数据库文件,但他们却不经意间有一个

如果他们不知道数据库文件,那么他们就不需要它们。这就是你看不到它们的原因。

【讨论】:

    【解决方案3】:

    您可以将数据库文件置于隐藏模式,以便用户在拥有Show Hidden Files 选项true 之前无法看到它

    或者,您可以将数据库文件与 exe 一起放置在专用的应用程序目录中,例如 C:\users\username\appdata\yourapp\

    【讨论】:

    • 我更多地考虑使用户无法读取数据库(执行程序时除外)
    • 为什么不简单地用密码保护数据库?
    • 我喜欢把它放在这里 C:\users\username\appdata\yourapp\ 目前我到数据库的链接是:Environnment.currentdirectory//mydatabase.mdb 我将如何获得 C: \users\username\appdata\yourapp\ 看到用户名是动态的?
    • 如果你是这么想的,那你为什么要问“他们是怎么做到的?”首先?
    • 因为我不知道他们以前是这样的
    【解决方案4】:

    我的建议是将您自己的数据库存储为平面 XML 文件(例如,通过 DataSet.WriteXml 保存到文件的普通 .NET 数据集),然后对该文件应用您自己的固定加密。加密/解密的密钥将在您的程序代码中,并且永远不需要更改。通过将您自己的数据存储为 XML,您将不需要客户端。在程序开始时,读取数据文件并将其解密到内存中,然后在需要时保存并加密。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多