i try it in my .ashx page but i got error 500 in myXMLHttpRequest.status and i can’t understand where is the problem. a simple code for generate a simple xml would be very good. like:
<properties>
<property>
<address>812 Gwyn Ave</address>
</property>
<property>
<address>3308 James Ave S</address>
</property>
</properties>
@ here is my solution (sql code works fine):
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
context.Response.ContentType = "text/xml";
XmlTextWriter writer = new XmlTextWriter();
string user_id = context.Request.Params["user_id"];
string connectionString = ("Data Source=.;Initial Catalog=user_city;Integrated Security=True");
string queryString = "select * from city_buildings where user_id=" + user_id + ";";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
writer.WriteStartDocument();
try
{
writer.WriteStartElement("buildings");
while (reader.Read())
{
writer.WriteStartElement("building");
writer.WriteElementString("user_id",Convert.ToString( reader[0]));
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
finally
{
reader.Close();
}
}
}
Dont have access to visual studio right now so doing this from top of the head. Should five you a starting point.
Update:
I indeed did mean to put OutputStream there. I updated the example to reflect this.
Have been looking at your code briefly. I can see you do not output the result of the xmlwriter to the HttpResponse. (what my example does by binding it to
Context.Response.OutputStream) That should be a reason why it won’t work. Altough why the 500 error occurs i don’t see. Maybe you should run in visual studio to see if any errors occur that will cause this.Also i noticed your use of
reader[0]. Event tough this might technicly be correct i will suggest you use a safer method like the following:This will ensure you will always get the desired field from the query. Even if in the future you decide to change the database schema to add some more columns.