Uwe*_*eim 13 .net string datatable serialization
最近我需要将DataTable
一个字符串序列化以进行进一步处理(存储在文件中).
所以我问自己:如何将DataTable序列化为字符串?
Uwe*_*eim 11
这是我为执行将序列DataTable
化为字符串的任务而编写的代码:
public static string SerializeTableToString( DataTable table )
{
if (table == null)
{
return null;
}
else
{
using (var sw = new StringWriter())
using (var tw = new XmlTextWriter(sw))
{
// Must set name for serialization to succeed.
table.TableName = @"MyTable";
// --
tw.Formatting = Formatting.Indented;
tw.WriteStartDocument();
tw.WriteStartElement(@"data");
((IXmlSerializable)table).WriteXml(tw);
tw.WriteEndElement();
tw.WriteEndDocument();
// --
tw.Flush();
tw.Close();
sw.Flush();
return sw.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望这对那里的某个人有用.
(请注意,我在过去询问是否可以发布片段并得到答复,这应该没问题;如果我错了,请纠正我 - 谢谢!)
您也可以尝试将DataTable编写为XML,它的工作原理非常好:
Dim dt As DataTable
Dim DataTableAsXMLString As String
'...code to populate DataTable
Using sw As New StringWriter()
dt.WriteXml(sw)
DataTableAsXMLString = sw.ToString()
End Using
Run Code Online (Sandbox Code Playgroud)
...然后,如果需要,您可以将XML转换回DataTable:
Dim ds As New DataSet
Dim dt2 As DataTable
Using sr As New StringReader(DataTableAsXMLString)
ds.ReadXml(sr)
dt2 = ds.Tables(0)
End Using
Run Code Online (Sandbox Code Playgroud)