假设以下过程(仅用于示例),如何在ASP.Net应用程序中使用XmlReader或DataReader读取两个XML输出?
create procedure doSomething
as
select EmpID, EmployeeName from tblEmployees for xml
select DeptID, DepartmentName from tblDepartments for xml
性能是关键,因此我不想使用DataSet将XML加载到内存中,然后将两个XML输出作为DataSet中的两个表读取。
答案 0 :(得分:0)
您可以使用普通DataSet读取SP的输出。 你的第一个xml将以ds.Tables [0]和第二个为ds.Tables [1],依此类推。
但是,整个xml将在整个表中分成多行。 因此,您必须遍历表中的可用行,并将数据附加到字符串构建器以获取完整的XML数据。
例如:
StringBuilder strBldrXMLData= new StringBuilder();
for (int i = 0; i < objDS.Tables[0].Rows.Count; i++)
strBldrXMLData.Append(Utility.ConvertToString(objPermDS.Tables[1].Rows[i][0]));
现在,您的strBldrXMLData.ToString()
将拥有第一个选择查询的完整XML输出。要根据模式/对象解释XML,您可以使用new System.Xml.XmlDocument().LoadXml(strBldrXMLData.ToString())