I have a simple web service which grabs data from database, and i want to return this data as dataset,string,XML. But the web service xml is not getting what type i returned. The question is, is it possible to return as object and webservice XML to display correct tag. at the moment it displays this tag anytype instead of string for example.
here is the method
[WebMethod]
public Object serviceForPostcode(String postCode, String type)
{
/**
*
* create dataset to store query
* convert dataset to required return type
* create types for returned object
*
*
**/
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(dbConnection());
/**
*
* -- types--
*
**/
XmlDocument xmlD = new XmlDocument();
StringWriter sw = new StringWriter();
DataSet dataSet = new DataSet();
/**
*
*
**/
// connection and query string
string dbQuery = "SELECT id, address1, address2, address3, address4, address5, post_code, country FROM paf WHERE (post_code = @postCode)";
try
{
cmd.Parameters.Add(new SqlParameter("@postcode",SqlDbType.NChar, 10)).Value = postCode.ToUpper();
cmd.CommandText = (dbQuery);
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
adapter.SelectCommand = cmd;
adapter.Fill(dataSet,"post codes");
}
catch(Exception e)
{
System.Web.HttpContext.Current.Response.Write(e.Message);
}
finally
{
//close database connection
conn.Close();
}
if (type.Equals("xml", StringComparison.InvariantCultureIgnoreCase))
{
return dataSet.GetXml();
}
else if (type.Equals("string", StringComparison.InvariantCultureIgnoreCase))
{
dataSet.WriteXml(sw);
return sw.ToString();
}
else if(type.Equals("dataset",StringComparison.InvariantCultureIgnoreCase))
{
return "";
}
return "error";
}