It seems that your approach of calling this web service is not correct.
You could fetch the data like this.
var request = sb.ToString();
using (var webClient = new WebClient())
{
var response = webClient.DownloadData(request);
var xml = Encoding.UTF8.GetString(response);
using(var sr = new StringReader(xml))
{
var dataSet = new DataSet();
dataSet.ReadXml(sr);
}
}
Some more info:
The DataSet itself contains 8 tables.
location,
current,
condition,
forecast,
forecastday,
day,
astro,
hour
For each of these tables you must have one DataGridView.
e.g. location can be shown like this:
dataGridView1.DataSource = dataSet.Tables[0];