我正在做一个winforms应用程序,用于识别车辆。
在此应用程序中,我将使用与车辆相对应的识别码。
很简单,一年内所有汽车只有一个代码,一年内只有一个自行车代码。
所以,我正在考虑这种数据::
year | car code | bike code
2014 | 156 | 185
2015 | 158 | 189
我有一个子表单,它会将所有这些数据显示到列表框(或其他列表类型)中,并允许我添加一行。当我添加一行时,我将显示在列表中,并将添加到文件中。
另一种观点是,我将展示所有'年'分成一个组合框。
我想知道的是,将数据存储到文件(csv,xml或其他......)的最佳方法是什么,以便我可以轻松地读取和编辑此文件,并将数据显示为
我知道如何处理数据库,但没有,我从来没有做过,也没有找到任何可以帮助我的东西。
我希望我清楚,如果没有,请告诉我。
编辑
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与类的值绑定。
谢谢。
答案 0 :(得分:1)
如果您没有大量数据,可以将其存储在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;)