我生成书序列号的,并保存到键值对其中 然后保存为文本文件,每个按键都是独一无二的。如何追加新项目KeyValuePair保存在文本文件在C#
当我将它保存到文本文件时,会生成密钥,并且我可以检索该密钥并且它工作正常。
- 当我生成第二个密钥并将其保存到文本文件时,它将覆盖文本文件并将先前生成的密钥删除。
生成密钥:
private void GenerateButton1_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
BookcomboBox2.Items.Clear();
from = int.Parse(FrmtextBox1.Text);
to = int.Parse(TotextBox2.Text);
result = to - from;
for (int i = 0; i <= result; i++)
{
string item = Convert.ToString(from + i);
BookcomboBox2.Items.Add(item);
vals.Add(new KeyValuePair<int, string>(0, item)); //
}
MessageBox.Show("Book No 1, Generated Successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (comboBox1.SelectedIndex == 1)
{
BookcomboBox2.Items.Clear();
from = int.Parse(FrmtextBox1.Text);
to = int.Parse(TotextBox2.Text);
result = to - from;
for (int i = 0; i <= result; i++)
{
string item = Convert.ToString(from + i);
BookcomboBox2.Items.Add(item);
vals.Add(new KeyValuePair<int, string>(1, item)); // CatA has 0 key value
}
MessageBox.Show("Book No-2 Generated Successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
节能键
private void Savebutton1_Click(object sender, EventArgs e)
{
using (StreamWriter sw = File.CreateText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Books.txt")))
{
string json = JsonConvert.SerializeObject(vals);
sw.Write(json);
}
MessageBox.Show("Books Saved Successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
当我添加新的书,后来和保存,而不是用书本2追加它覆盖只有第2册的文件,先前创建的第1本书被删除。
p.s:如果问题听起来令人困惑,请询问。
编辑帕特里克给出
解决方案工作,但再次阅读时,它给我这个错误:
,当我检查,我注意到这个文件:
这是你的全部代码吗? – lordkain
把断点放在 'string json = JsonConvert.SerializeObject(vals);' vals的内容是什么,当你的第二次写作开始时? –
vals包含第一本书。当第二个被添加,并重写vals时,第一个被删除的第二本书仍然存在。 – Patrick