using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Xml; public class DbXmlReader { /// <summary> /// Gets xml from MSSQL Server and returns it as a string. /// </summary> public DbXmlReader() { } /// <summary> /// This method takes an optional list of paramters. /// </summary> public string getXmlString(string storedProcedureName, params SqlParameter[] spParameterList) { SqlConnection sqlConnection = null; XmlReader xmlReader = null; string xmlString = ""; try { sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = GetConnectionString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = sqlConnection; cmd.CommandText = storedProcedureName; cmd.CommandType = CommandType.StoredProcedure; // optional list of parameters for stored procedure if (spParameterList.Length > 0) { for (int i = 0; i < spParameterList.Length; i++) { cmd.Parameters.Add(spParameterList[i]); } } sqlConnection.Open(); xmlReader = cmd.ExecuteXmlReader(); xmlReader.Read(); // we are getting XML straight from the stored procedure, so add it to // our XML string while (xmlReader.ReadState != ReadState.EndOfFile) { xmlString = xmlReader.ReadOuterXml(); } } catch (Exception e) { Console.WriteLine("updateDB error: " + e.Message); } finally { if (sqlConnection != null) { sqlConnection.Close(); } if (xmlReader != null) { xmlReader.Close(); } } return xmlString; } private string GetConnectionString() // stored in web.config { return ConfigurationManager.ConnectionStrings ["MSSQLConnectionString"].ConnectionString; } }