拥有存储数据的演进列表,没有数据库
本文关键字:数据库 列表 存储 数据 拥有 | 更新日期: 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;)