如何在c#中保存数据的列表视图为.txt格式,以便下次打开表单时可以访问它

本文关键字:下次 表单 访问 格式 txt 保存 数据 视图 列表 | 更新日期: 2023-09-27 17:49:57

如何在listview中保存数据?

例如,如果用户在listview中输入了一些东西,然后关闭了应用程序,那么所有的信息都会丢失。有没有办法在listView中保存信息呢?

这是我用来从文本框输入信息到listView1的代码:

  string[] items = { titletxt.Text, statustxt.Text };
        ListViewItem lvi = new ListViewItem(items);
        listView1.Items.Add(lvi);
更新(29/12/2012)

谢谢你的帮助!但是我好像不能使它工作。我已经创建了一个非常简单的形式,试图让它工作。它有3个文本框(nametext, agetext, haircolortxt),一个按钮,和列表视图(ListOfPeople)。

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace listview
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string[] items = { NameTxt.Text, AgeTxt.Text, HairColourTxt.Text };
            ListViewItem lvi = new ListViewItem(items);
            ListOfPeople.Items.Add(lvi);
        }
    }
}

我已经尝试添加@user574632 &@Joe,@DmitryKvochkin和我已经改变了一些,但仍然不能让它工作。我不确定我做错了什么?我试着添加这个:

     private void saveListOfPeopleItems(string path, ListView lv)
    {
        var delimeteredListviewData = new List<string>();
        foreach (ListViewItem lvi in lv.Items)
        {
            string delimeteredItems = string.Empty;
            foreach (ListViewItem.ListViewSubItem lvsi in lvi.SubItems)
            {
                delimeteredItems += lvsi.Text + "#";
            }
            delimeteredListviewData.Add(delimeteredItems);
        }
        System.IO.File.WriteAllLines(path, delimeteredListviewData.ToArray());
    }
    private void loadListOfPeopleItems(string path, ListView lv)
    {
        foreach (string line in System.IO.File.ReadAllLines(path))
        {
            lv.Items.Add(new ListViewItem(line.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries)));
        }
    }

如何在c#中保存数据的列表视图为.txt格式,以便下次打开表单时可以访问它

您需要创建保存逻辑,没有自动方法。

最简单的方法是使用Serialization(查找ISerializable)保存到您选择的文件(命名为您喜欢的任何名称):您可以以这种方式保存整个对象。这是一个关于序列化的简单教程。

另一种方法是将listview内容解析为字符串(只保留您需要的内容),并将字符串保存到文本文件(TextReaderTextWriter)。

如果你想保存应用程序设置(而不是用户数据),看看这个链接,或者这个链接可能更容易阅读。

最后,如果你需要与定期保存的数据进行交互,或者如果你有很多数据要存储,请使用数据库(SQL, mySQL等)。后一种方法是实现时间最长的。

如果想保存为文本文件,可以使用以下命令:

 private void saveListViewItems(string path, ListView lv)
    {
        var delimeteredListviewData = new List<string>();
        foreach (ListViewItem lvi in lv.Items)
        {
            string delimeteredItems = string.Empty;
            foreach (ListViewItem.ListViewSubItem lvsi in lvi.SubItems)
            {
                delimeteredItems += lvsi.Text + "#";
            }
            delimeteredListviewData.Add(delimeteredItems);
        }
        System.IO.File.WriteAllLines(path, delimeteredListviewData.ToArray());
    }
    private void loadListViewItems(string path, ListView lv)
    {
        foreach (string line in System.IO.File.ReadAllLines(path))
        {
            lv.Items.Add(new ListViewItem(line.Split(new char[]{'#'}, StringSplitOptions.RemoveEmptyEntries)));
        }
    }

您可以使用集成的visual studio设置,然后将其绑定到您的listview,甚至在设计器中。修改列表视图后,你可以保存它们

我认为答案是:使用。txt文件您也可以创建一个SQL数据库,并保存在那里…