/// <summary>
/// 读取XML中的数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
string StrPath = AppDomain.CurrentDomain.BaseDirectory + "\\DBConnect.xml";
string Astr = File.ReadAllText(StrPath, Encoding.GetEncoding("gb2312"));
DataTable Atbl = XmlToDataTable(Astr);
}
/// <summary>
/// 将Data Table的数据写入到XML中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
DataTable Atb = new DataTable("Stu");
Atb.Columns.Add("Name");
Atb.Columns.Add("Sex");
DataRow Adr = Atb.NewRow();
Adr["Name"] = "高晓宇";
Adr["Sex"] = "22";
Atb.Rows.Add(Adr);
Adr = Atb.NewRow();
Adr["Name"] = "高小牛";
Adr["Sex"] = "1";
Atb.Rows.Add(Adr);
string Astr = DataTable2Xml(Atb);
string StrPath = AppDomain.CurrentDomain.BaseDirectory + "\\DBConnect.xml";
File.WriteAllText(StrPath, Astr, Encoding.GetEncoding("gb2312"));//不存在该XML文件时会自动生成一个文件
}
/// <summary>
/// 将XML生成DataTable
/// </summary>
/// <param name="xmlStr">XML字符串</param>
/// <returns></returns>
public static DataTable XmlToDataTable(string xmlStr)
{
if (!string.IsNullOrEmpty(xmlStr))
{
StringReader StrStream = null;
XmlTextReader Xmlrdr = null;
try
{
DataSet ds = new DataSet();
//读取字符串中的信息
StrStream = new StringReader(xmlStr);
//获取StrStream中的数据
Xmlrdr = new XmlTextReader(StrStream);
//ds获取Xmlrdr中的数据
ds.ReadXml(Xmlrdr);
return ds.Tables[0];
}
catch (Exception e)
{
return null;
}
finally
{
//释放资源
if (Xmlrdr != null)
{
Xmlrdr.Close();
StrStream.Close();
StrStream.Dispose();
}
}
}
return null;
}
/// <summary>
/// 将datatable转为xml
/// </summary>
/// <param name="vTable">要生成XML的DataTable</param>
/// <returns></returns>
public static string DataTable2Xml(DataTable vTable)
{
if (null == vTable) return string.Empty;
StringWriter writer = new StringWriter();
vTable.WriteXml(writer);
string xmlstr = writer.ToString();
writer.Close();
return xmlstr;
}
/// 读取XML中的数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
string StrPath = AppDomain.CurrentDomain.BaseDirectory + "\\DBConnect.xml";
string Astr = File.ReadAllText(StrPath, Encoding.GetEncoding("gb2312"));
DataTable Atbl = XmlToDataTable(Astr);
}
/// <summary>
/// 将Data Table的数据写入到XML中
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
DataTable Atb = new DataTable("Stu");
Atb.Columns.Add("Name");
Atb.Columns.Add("Sex");
DataRow Adr = Atb.NewRow();
Adr["Name"] = "高晓宇";
Adr["Sex"] = "22";
Atb.Rows.Add(Adr);
Adr = Atb.NewRow();
Adr["Name"] = "高小牛";
Adr["Sex"] = "1";
Atb.Rows.Add(Adr);
string Astr = DataTable2Xml(Atb);
string StrPath = AppDomain.CurrentDomain.BaseDirectory + "\\DBConnect.xml";
File.WriteAllText(StrPath, Astr, Encoding.GetEncoding("gb2312"));//不存在该XML文件时会自动生成一个文件
}
/// <summary>
/// 将XML生成DataTable
/// </summary>
/// <param name="xmlStr">XML字符串</param>
/// <returns></returns>
public static DataTable XmlToDataTable(string xmlStr)
{
if (!string.IsNullOrEmpty(xmlStr))
{
StringReader StrStream = null;
XmlTextReader Xmlrdr = null;
try
{
DataSet ds = new DataSet();
//读取字符串中的信息
StrStream = new StringReader(xmlStr);
//获取StrStream中的数据
Xmlrdr = new XmlTextReader(StrStream);
//ds获取Xmlrdr中的数据
ds.ReadXml(Xmlrdr);
return ds.Tables[0];
}
catch (Exception e)
{
return null;
}
finally
{
//释放资源
if (Xmlrdr != null)
{
Xmlrdr.Close();
StrStream.Close();
StrStream.Dispose();
}
}
}
return null;
}
/// <summary>
/// 将datatable转为xml
/// </summary>
/// <param name="vTable">要生成XML的DataTable</param>
/// <returns></returns>
public static string DataTable2Xml(DataTable vTable)
{
if (null == vTable) return string.Empty;
StringWriter writer = new StringWriter();
vTable.WriteXml(writer);
string xmlstr = writer.ToString();
writer.Close();
return xmlstr;
}