Ahoj, v aplikaci se snažím ukládat data vložená uživatelem do DataGridView a současně do souboru na disku (jednoduchá databáze), Podle videa zde:
https://www.youtube.com/watch?v=5reY435GWDI&list=PL-EU0JUF-XD1saII7gONUxMIbk13XkmCV&index=41
jsem použila serializaci a deserializaci, to funguje, jen nevím, nahrát data z vytvořené databáze zpět do DataGridView. Při novém spuštění aplikace nemám nahraná žádná data. Deserializovaná data jsou typu List.
Zatím můj kod vypadá takto:
public partial class MainForm : Form
{
public UserInput UserInput;
public List<UserInput> ui = new List<UserInput>();
ObjectToSerialize objectToSerialize = new ObjectToSerialize();
Serializer serializer = new Serializer();
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
UlozitDB();
NacistDB();
}
public void UlozitDB()
{
objectToSerialize.Ui = ui;
serializer.SerializeObject("database.txt", objectToSerialize);
}
public void NacistDB()
{
ui = objectToSerialize.Ui;
objectToSerialize = serializer.DeSerializeObject("database.txt");
MessageBox.Show(ui.ToString());
}
public void InfoItemClick(object sender, EventArgs e)
{
Form About = new About();
About.Show();
}
private void New_Click(object sender, EventArgs e)
{
using (NewPos newPos = new NewPos() { UserInput = new UserInput() })
{
if (newPos.ShowDialog() == DialogResult.OK)
userInputBindingSource.Add(newPos.UserInput);
}
}
}
}
public partial class NewPos : Form
{
public UserInput UserInput { get; set; }
public List<UserInput> ui = new List<UserInput>();
public NewPos()
{
InitializeComponent();
}
private void NewPos_Load(object sender, EventArgs e)
{
}
private void BtnAdd_Click(object sender, EventArgs e)
{
UserInput.CisloPosudku = Vloz_cisloP.Text;
UserInput.Specifikace = Vloz_spec.Text;
UserInput.Obvineny = Vloz_obvineny.Text;
UserInput.CTS = Vloz_CTS.Text;
UserInput.DatumOpatreni = dateTimePicker1.Text;
//.Add(new UserInput(UserInput.CisloPosudku, UserInput.Specifikace, UserInput.Obvineny, UserInput.CTS, UserInput.DatumOpatreni));
}
}
[Serializable()]
public class UserInput : ISerializable
{
public string CisloPosudku { get; set; }
public string Specifikace { get; set; }
public string Obvineny { get; set; }
public string CTS { get; set; }
public string DatumOpatreni { get; set; }
public UserInput()
{
}
public UserInput(string cisloPosudku, string specifikace, string obvineny, string cts, string datumOpatreni)
{
this.CisloPosudku = cisloPosudku;
this.Specifikace = specifikace;
this.Obvineny = obvineny;
this.CTS = cts;
this.DatumOpatreni = datumOpatreni;
}
public UserInput(SerializationInfo info, StreamingContext ctxt)
{
this.CisloPosudku = (string)info.GetValue("CisloPosudku", typeof(string));
this.Specifikace = (string)info.GetValue("Specifikace", typeof(string));
this.Obvineny = (string)info.GetValue("Obvineny", typeof (string));
this.CTS = (string)info.GetValue("CTS", typeof(string));
this.DatumOpatreni = (string)info.GetValue("DatumOpatreni", typeof(string));
}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
info.AddValue("CisloPosudku", this.CisloPosudku);
info.AddValue("Specifikace", this.Specifikace);
info.AddValue("Obvineny", this.Obvineny);
info.AddValue("CTS", this.CTS);
info.AddValue("DatumOpatreni", this.DatumOpatreni);
}
}