Как это исправить - C# winform save&load textboxvalues
извините за мой английский..
я сделал кнопку для сохранения значений текстовых полей в xml-файл.
я сделал кнопку для загрузки из xml в каждый текстовый ящик, который сохранялся раньше
Моя проблема заключается в том, что когда я нажимаю кнопку loadbutton один раз, да, она загружает все значения, которые я сохранил в xml, в каждый textboxs, но после этого я хотел изменить некоторые значения в одном из всех textboxs и снова нажать кнопку save, и это всплывающее окно говорит:
"Процесс не может получить доступ к файлу 'data.xml-потому что его использует другой процесс."
поэтому я не могу изменить данные после загрузки..
пожалуйста, могу ли я получить решение, чтобы заставить его работать! спасибо
Что я уже пробовал:
Savebutton
private void btnsave_Click_1(object sender, EventArgs e) { try { Information info = new Information(); info.Data1 = txtBasoSU.Text; info.Data2 = txtBasoC.Text; info.Data3 = txtBasoM.Text; info.Data4 = txtBasoB.Text; info.Data5 = txtMieA.Text; info.Data6 = txtMieAB.Text; info.Data7 = txtServisMinuman.Text; info.Data8 = txtServisMakanan.Text; info.Data9 = txtServisBungkus.Text; info.Data10 = txtTotalSpajak.Text; info.Data11 = txtTotalPajak.Text; info.Data12 = txtTotal.Text; SaveXML.SaveData(info, "data.xml"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Кнопка загрузки
private void btnload_Click(object sender, EventArgs e) { if (File.Exists("data.xml")) { XmlSerializer xs = new XmlSerializer(typeof(Information)); FileStream read = new FileStream("data.xml", FileMode.Open, FileAccess.Read, FileShare.Read); Information info = (Information)xs.Deserialize(read); txtBasoSU.Text = info.Data1; txtBasoC.Text = info.Data2; txtBasoM.Text = info.Data3; txtBasoB.Text = info.Data4; txtMieA.Text = info.Data5; txtMieAB.Text = info.Data6; txtServisMinuman.Text = info.Data7; txtServisMakanan.Text = info.Data8; txtServisBungkus.Text = info.Data9; txtTotalSpajak.Text = info.Data10; txtTotalPajak.Text = info.Data11; txtTotal.Text = info.Data12; } }
SaveXML.в CS
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; using System.IO; namespace CS_Sistem_Managemen_Restoran { public class SaveXML { public static void SaveData(object obj, string filename) { XmlSerializer sr = new XmlSerializer(obj.GetType()); TextWriter writer = new StreamWriter(filename); sr.Serialize(writer, obj); writer.Close(); } } }
Информация.в CS
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace CS_Sistem_Managemen_Restoran { public class Information { private string data1; private string data2; private string data3; private string data4; private string data5; private string data6; private string data7; private string data8; private string data9; private string data10; private string data11; private string data12; public string Data1 { get { return data1; } set { data1 = value; } } public string Data2 { get { return data2; } set { data2 = value; } } public string Data3 { get { return data3; } set { data3 = value; } } public string Data4 { get { return data4; } set { data4 = value; } } public string Data5 { get { return data5; } set { data5 = value; } } public string Data6 { get { return data6; } set { data6 = value; } } public string Data7 { get { return data7; } set { data7 = value; } } public string Data8 { get { return data8; } set { data8 = value; } } public string Data9 { get { return data9; } set { data9 = value; } } public string Data10 { get { return data10; } set { data10 = value; } } public string Data11 { get { return data11; } set { data11 = value; } } public string Data12 { get { return data12; } set { data12 = value; } } } }