拥有存储数据的演进列表,没有数据库

本文关键字:数据库 列表 存储 数据 拥有 | 更新日期: 2023-09-27 18:11:12

我正在做一个winforms应用程序,识别车辆。

在此应用程序中,我将使用与车辆对应的识别码。

很简单,一年内所有的汽车只有一个代码,一年内所有的自行车只有一个代码。

所以,我在考虑这样的数据::

year | car code | bike code
2014 | 156 | 185
2015 | 158 | 189

我有一个子表单,它将把所有这些数据显示到一个列表框(或另一个列表类型)中,并且还允许我添加一行。当我要添加一行时,我将在列表中显示,并将被添加到文件中。

在另一个视图中,我将把所有的"year"部分显示在一个组合框中。

我想知道的是,什么是最好的方式来存储我的数据到一个文件(csv, xml,或其他…),这样我可以很容易地阅读和编辑这个文件,并显示数据到一个

我知道如何使用数据库,但是没有,我从来没有这样做过,也没有找到任何可以帮助我的。

我希望我讲清楚了,如果不是,请告诉我。

edit:

public FormPref()
        {
            lst = GetIdentifiant(path);
            dataGridViewIdentifiant.DataSource = lst;
}
private void buttonAddIdentifiant_Click(object sender, EventArgs e)
        {
            Vehicule identifiant = new Vehicule();
            if (!string.IsNullOrEmpty(textBoxYear .Text) &&
                !string.IsNullOrEmpty(textBoxCarCode .Text) &&
                !string.IsNullOrEmpty(textBoxBikeCode .Text))
            {
                identifiant.Year = textBoxYear .Text;
                identifiant.CarCode = textBoxCarCode .Text;
                identifiant.BikeCode = textBoxBikeCode .Text;
                lst.Add(identifiant); 
            }
        }

我尝试用refresh, update来更新datagridview中的显示,但是没有效果。

datagridview与类的值绑定。

谢谢。

拥有存储数据的演进列表,没有数据库

如果您没有很多数据,您可以将其存储在csv文件中。添加新值时,可以使用File。AppendAllLines以避免重写文件

又快又脏

public class Vehicule
{
    public int Year { get; set; }
    public int CarCode { get; set; }
    public int BikeCode { get; set; }
    public override string ToString()
    {
        return string.Format("{0},{1},{2}", Year, CarCode, BikeCode);
    }
}
public class FileStorage
{
    public List<Vehicule> GetVehicules(string filePath)
    {
        return File.ReadAllLines(filePath).Select(s => s.Split(',')).Select(split => new Vehicule
        {
            Year = int.Parse(split[0]),
            CarCode = int.Parse(split[1]),
            BikeCode = int.Parse(split[2])
        }).ToList();
    }
    public void WriteVehicules(string filePath, IEnumerable<Vehicule> vehicules)
    {
        File.WriteAllLines(filePath, vehicules.Select(s => s.ToString()));
    }
}

也有非常好的nuget包可以轻松操作CSV;)