gpt4 book ai didi

c# - 在文件中保存和加载 sql 数据库

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:49 24 4
gpt4 key购买 nike

我正在编写 C# 应用程序来管理密码。现在,我的数据库是 .txt 文件,但我想创建一些方法来存储它。 .mdf 文件是一个好方法吗?我知道如何管理 .mdf 文件中的 sql 数据库,但我不知道如何另存为到用户选择的位置或如何再次加载它以进行编程。

当然它可以是任何不同的文件类型。我寻找最安全的方法来做到这一点。将来我将创建 asp.net 应用程序和 Xamarin android 应用程序来在几个平台上管理它。

@编辑我将尝试再解释一次。检查这个:

用户执行程序。可以选择创建新数据库或加载现有数据库。在创建模式下,用户可以设置数据库类型。现在我只有一个,它是 txt。我想知道其他的,fe。 .mdf,但我不知道如何将 .mdf 文件保存在用户选择的位置。对于可能的扩展以及如何保护它的任何其他建议,我们将不胜感激。

我想存储如下:

登录 |密码 |链接网站|

当然我会散列所有内容,所以如果有人打开 .txt 文件,他将看不到任何内容。

也欢迎对这个字符串进行哈希处理的建议(不是 md5。它必须是 2 种方式)。

最佳答案

根据我上面的评论,这里你可以做什么

您的应用程序将从 List<SiteDetail> 读取站点详细信息在哪里

[Serializable()]
public class SiteDetail
{
public string Login{get; set;}
public string Password{get; set;}
public string Url{get; set;}
}

然后当你想存储数据(Save)时,你做如下

public void Save(string filePath,List<SiteDetail> data)
{
Stream stream= File.Create(filePath);
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(stream, data);
stream.Close();
}

当你想取回数据(Read)时,你做下面的事情

   public List<SiteDetail> Read(string filePath)
{
if (File.Exists(FileName))
{
Stream stream= File.OpenRead(filePath);
BinaryFormatter deserializer = new BinaryFormatter();
var details= (List<SiteDetail>)deserializer.Deserialize(stream);
stream.Close();
return details;
}
return null; // file not exists
}

要加密您的数据,请查看这篇文章 Encrypting and Decrypting Data

如果还有什么问题,请继续

已编辑

如您在评论中提到的那样,为了保存有关您的数据的元信息,您可以创建另一个名为 meta.dat 的文件(它将存储另一个类 [Version,Culture, ....etc]),或者您可以轻松地添加另一个名为 SiteVersion 的类如下

[Serializable()]
public class SiteVersion : SiteDetail // inherited from SiteDetail to store backup
{
public int Version{get; set;}
public string Culture{get; set;}
public DateTime CreatedOn{get; set;}
}

在你的SiteDetail类,你可以添加List<SiteVersion>属性,您可以在进行任何更改时填充它,这样您也可以在文件中存储详细信息及其版本历史

[Serializable()]
public class SiteDetail
{
public string Login{get; set;}
public string Password{get; set;}
public string Url {get;set;}

public List<SiteVersion> Versions {get; set;}
}

希望对你有帮助

关于c# - 在文件中保存和加载 sql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com