2011-05-18 21 views
1

假設以下過程(僅針對示例),如何在ASP.Net應用程序中使用XmlReader或DataReader讀取兩個XML輸出?在ASP.Net應用程序中讀取存儲過程的多個Xml輸出

create procedure doSomething 
as 

select EmpID, EmployeeName from tblEmployees for xml 

select DeptID, DepartmentName from tblDepartments for xml 

性能是關鍵的,因此我不希望通過使用DataSet加載個XML到存儲器中,然後讀出的兩個XML輸出作爲在DataSet兩個表。

+0

爲什麼在這裏使用「for xml」? – Pankaj 2011-05-18 13:13:55

+0

這只是一個例子。代替上面的陳述,我有一些複雜的代碼將數據作爲XML返回。中間層流程XML。 – Pradeep 2011-05-20 12:35:46

回答

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())

相關問題