نیاز به دیتاست نیست. از LinqToXML استفاده کن.
فرض کن نام فایل books.xml و کنار خایل اجرایی برنامه باشه.
به اینصورت میتونی اطلاعات را بیرون بکشی و نمایش بدی:
string xmlFilePath = System.IO.Path.Combine(Application.StartupPath , "books.xml" );
XElement element = null;
try
{
element = XElement.Load(Path.Combine(xmlFilePath));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
var q = from item in element.Elements("Book")
select new
{
ID = item.Element("id").Value,
title = item.Element("title").Value,
author = item.Element("author").Value
};
dataGridView1.DataSource = q.ToList();
به صورت زیر هم میتونی کتاب جدید اضافه کنی:
string xmlFilePath = System.IO.Path.Combine(Application.StartupPath, "books.xml");
XElement element = null;
try
{
element = XElement.Load(Path.Combine(xmlFilePath));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
int newId = 1;
if (element.Elements("Book").Count() > 0)
{
newId = element.Elements("Book").Max(item => Convert.ToInt32(item.Element("id").Value))+1;
}
element.Add(new XElement("Book",
new XElement("id", newId),
new XElement("title", textBox1.Text),
new XElement("author", textBox2.Text)
));
element.Save(xmlFilePath);