سلام دوستان.
دوتا تابع براتون میذارم که دیگه مشکلی در نوشتن در فایل XML و خواندن از اونو نداشته باشین.
ابتدا فضای نام های زیر را به برنامتون Import می کنین:
using System;
using System.Data;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
سپس این توابع رو اضافه کرده و حالشو می برین!!! ::
/// <summary>
/// این یک تابع برای ذخیره سازی اطلاعات شما به صورت یک فایل ایکس.ام.ال میباشد
/// </summary>
/// <param name="DT">DT is a DataTable [Your Records Table]</param>
/// <param name="strDestinationAddress">strDestinationAddress is a Path [Path to Save Your XML File]</param>
public void SelrializetoXMLFile(DataTable DT, String strDestinationAddress)
{
try
{
DataSet objDataSet = new DataSet("MyDataset");
string Path = strDestinationAddress;
XmlSerializer XS = new XmlSerializer(objDataSet.GetType());
TextWriter objTextWriter = new StreamWriter(Path, false);
objDataSet.Tables.Add(DT);
XS.Serialize(objTextWriter, objDataSet);
objTextWriter.Close();
}
catch (Exception ex) { throw ex; }
}
/// <summary>
/// این یک تابع برای خواندن اطلاعات ذخیره شده شما از یک فایل ایکس.ام.ال میباشد
/// </summary>
/// <param name="DT">DT is a Referenced DataTable [Your Records Table]</param>
/// <param name="strSourceAddress">strSourceAddress is a Path [Read from Your XML File]</param>
public void DeSerializeXMLToINFODataTable(ref DataTable DT, String strSourceAddress)
{
try
{
DataSet objDataSet = new DataSet();
XmlSerializer XS = new XmlSerializer(objDataSet.GetType());
DataTable objDataTable = new DataTable();
TextReader objTextReader = new StreamReader(strSourceAddress);
objDataSet = (DataSet)XS.Deserialize(objTextReader);
objTextReader.Close();
foreach (DataRow dr in objDataSet.Tables["Table1"].Rows)
{
DataRow newdr = DT.NewRow();
foreach (DataColumn clm in DT.Columns)
{
if (dr[clm.ColumnName] == string.Empty)
newdr[clm.ColumnName] = string.Empty;
else
newdr[clm.ColumnName] = dr[clm.ColumnName];
}
DT.Rows.Add(newdr);
}
}
catch (Exception ex) { throw ex; }
}
اینم کلاسش: XMLReadWriteClass.rar
موفق باشین.