【发布时间】:2011-08-25 09:10:20
【问题描述】:
MSSQL Server 可以返回 XML 格式的查询结果。我的问题是,我可以使用 C# 直接调用这个函数吗?我只想在不使用任何序列化或传统 C# 代码中使用的其他方法的情况下生成 XML。
谢谢 苏特
【问题讨论】:
MSSQL Server 可以返回 XML 格式的查询结果。我的问题是,我可以使用 C# 直接调用这个函数吗?我只想在不使用任何序列化或传统 C# 代码中使用的其他方法的情况下生成 XML。
谢谢 苏特
【问题讨论】:
你可以使用ExecuteXmlReader
来自here:
using(SqlConnection cn = new SqlConnection("data source=(local);initial catalog=pubs;.....")) {
cn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM authors FOR XML AUTO, XMLDATA", cn);
XmlReader xmlr = cmd.ExecuteXmlReader();
xmlr.Read();
while(xmlr.ReadState != ReadState.EndOfFile) {
Console.WriteLine(xmlr.ReadOuterXml());
}
}
【讨论】:
SqlXml 类是您需要使用的。但是,鉴于 SQL 连接的性质,XML 数据仍将在后台进行序列化和反序列化。 (对象只能在同一内存空间中使用。一旦跨越应用程序边界,就需要某种形式的序列化)
【讨论】: