/// <summary>
/// Generates an XPath navigatable dataset based on sql
/// </summary>
/// <param name="sql">The SQL to execute</param>
/// <param name="setName">Name of the returned set</param>
/// <returns>A <setName></setName> element with the results, or an <error></error> element if an exception occured</returns>
public static XPathNodeIterator GetDataSet(string sql, string setName)
{
try
{
DataSet ds = GetDataSetFromSql(sql, setName);
var dataDoc = new XmlDataDocument(ds);
return dataDoc.CreateNavigator().Select(".");
}
catch (Exception e)
{
// If there's an exception we'll output an error element instead
var errorDoc = new XmlDocument();
errorDoc.LoadXml(String.Format("<error>{0}</error>", HttpUtility.HtmlEncode(e.ToString())));
return errorDoc.CreateNavigator().Select(".");
}
}