[英]table schema to datatable c#
如何在C#中将架构读入数据表
<header>
<xs:schema id="header" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="header" msdata:IsDataSet="true" msdata:MainDataTable="Table" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int" minOccurs="0" />
<xs:element name="enteredon" type="xs:dateTime" minOccurs="0" />
<xs:element name="enteredby" type="xs:string" minOccurs="0" />
<xs:element name="remark" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
</header>
尝试此代码,但失败:
public static Stream StringToStream(string data)
{
try
{
System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
StreamWriter writer = new StreamWriter(xmlStream);
writer.Write(data);
writer.Flush();
return xmlStream;
}
catch (Exception)
{
return null;
}
}
table.ReadXmlSchema(StringToStream(saveData));
您的代码将引发“缺少根元素”异常。
我在DaniWeb中找到了一个解决方案,该解决方案是添加以下代码以重置位置。
System.IO.MemoryStream xmlStream = new System.IO.MemoryStream();
StreamWriter writer = new StreamWriter(xmlStream);
writer.Write(data);
writer.Flush();
xmlStream.Position = 0;//Add this to reset the position of the stream.
请再试一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.