*** CODE SAMPLE *** public string GetCAREDataOleDb(string _NodeName) { try { XmlDocument _doc = new XmlDocument(); string _returnValue = ""; XmlNode _parentNode; XmlNode _childNode; OleDbDataReader _reader = null; string _delimStr = " ,"; string _tmpVar = ""; char [] _delimiter = _delimStr.ToCharArray(); string _CAREQuery = "SELECT AC.CAF_NBR,AC.PAT_ID,AC.DATE_OF_APPLICATION,AC.DATE_OF_ASSESSMENT,AC.DATE_OF_ADMISSION,AC.PROGRAM_NBR, AC LEFT OUTER JOIN REGISTRATION R ON AC.CAF_NBR = R.CAF_NBR LEFT OUTER JOIN CARE_GIVER CG ON AC.PAT_ID = CG.PAT_ID LEFT OUTER JOIN PATIENT P ON AC.PAT_ID = P.PAT_ID Where AC.CAF_NBR = " + this.CAFNumber.ToString() + " And (AC.CCAC = '1' OR AC.CCAC = '4')"; string[] _tmpArray; _reader = OleDbHelper.ExecuteReader(MyAppCommon.CAREDBConn, System.Data.CommandType.Text, _CAREQuery); //get column names _tmpArray = _CAREQuery.Split(_delimiter); if (_reader != null) { if (_reader.HasRows) { _reader.Read(); _parentNode = _doc.CreateNode(XmlNodeType.Element,_NodeName,""); for (int _index=0; _index < _reader.FieldCount; _index++) { // +1 because the first in the list is the "SELECT" word _tmpVar = _tmpArray[_index+1]; _childNode = _doc.CreateNode(XmlNodeType.Element,_tmpVar.Substring(_tmpVar.LastIndexOf(".")+1),""); _childNode.InnerText = _reader[_index].ToString(); _parentNode.InsertAfter(_childNode,_parentNode.LastChild); } _returnValue = _parentNode.OuterXml; } else { _returnValue = ""; } } return _returnValue; *** END CODE ***