【问题标题】:How to save data into application vb.net ? (Not use database or txt file)如何将数据保存到应用程序 vb.net 中? (不使用数据库或txt文件)
【发布时间】:2017-03-26 15:45:54
【问题描述】:

我是 VB.net 的新手。我有一个从文本框中保存数据的小项目。 (很简单:创建文本框,将我的名字填入文本框并保存)。

但我不想使用数据库或 txtfile,因为如果我这样使用,我将有 2 个文件:我的 app.exe 和数据库文件。我不知道是否有任何方法可以将数据保存到我的 app.exe 中。只有1个文件app.exe,这个应用程序中包含数据库(应用程序与excel文件相同:只有1个文件excel,可以填充数据并保存)

【问题讨论】:

  • Excel 有两个文件。 Excel.exeyourdata.xlsx - 所以似乎微软也无法将数据保存在一个 .exe 文件中:)
  • 您好法比奥,感谢您的回答。我的意思是只有一个文件 mydata.xlsx。之前,我使用 1 个文件 .xlsx 填充数据,保存数据,编写宏来处理数据。 Everthing 用于 1 个文件 .xlsx。但现在,我想用 .xlsx 文件创建相同的应用程序。有没有办法这样做,或者我不得不使用数据库来保存数据。
  • 您可以使用与 Excel 相同的方法。创建可以打开带有.mydata 扩展名的文件的应用程序(.exe)文件。因此,您将拥有可以打开、创建和修改.mydata 文件的应用程序。
  • 这听起来是个好主意,但 .mydata 文件是什么?你能告诉我更多关于它的细节,样品或给我一些关键字,我可以在谷歌搜索它。
  • .mydata - 就是一个例子 - 你可以使用任何你想要的扩展。文件将包含您想要的任何格式的数据。搜索“使用自定义扩展名打开文件”

标签: vb.net


【解决方案1】:

显然你有一个班级Student(来自你的评论)

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

要绑定到DataGridView,您可以使用BindingList<Student>

然后,当您关闭应用程序时,以 JSON 格式保存。

var data = _yourBindingList.ToList();
var serializedData = Newtonsoft.Json.JsonConvert.SerializeObject(data);
System.IO.File.WriteAllText(@"fileName.anyExtensionYouWant", serializedData);

当应用程序开始从文件中加载数据并反序列化它。

var data = System.IO.File.ReadAllText(@"fileName.anyExtensionYouWant", serializedData);
var loadedStudents = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Student>>(data);

_yourBindingList = new BindingList(loadedStudents);
yourDataGridView.DataSource = _yourBindingList;

【讨论】:

    【解决方案2】:

    简单的方法是将文本保存到 txt 文件中

    My.Computer.FileSystem.WriteAllText
    

    https://msdn.microsoft.com/es-es/library/27t17sxs(v=vs.90).aspx

    所以

    My.Computer.FileSystem.WriteAllText("C:\TestFolder1\test.txt", "This is new text to be added.", False)
    

    你的情况可以

    My.Computer.FileSystem.WriteAllText("C:\TestFolder1\test.txt", textbox1.text, False)
    

    如果您需要使用 MyDocuments 或 Desktop 文件夹,则需要使用相对系统路由

    【讨论】:

    • 保存和读取文本文件是个好主意,但我不能为我的项目扩展它。因为我有超过 1 个数据字段(例如:学生姓名、学生 ID、学生年龄......)。当我将它保存到文本文件时,我很难获取数据并使用绑定数据将每个学生的信息显示到 datagridview
    • 原帖是“(很简单:创建文本框,将我的名字填入文本框并保存)。”我只是想一个简单的文本框你可以使用像“|”这样的特殊字符来连接字段然后使用完整的字符串来获取每个部分。适合你吗?类似 textbox1.text & "|"文本框2.文本和“|” & textbox3.text
    猜你喜欢
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2020-03-29
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多