kobinath Ответов: 1

Система прогноза погоды API в C#


Я хочу показать 7 дней недели. информация о погоде это API, который я использовал, чтобы забыть результат 7 дней Лондон

http://api.apixu.com/v1/forecast.xml?key=5742bec32f4141e08db171907171010 &ампер;м=Индия&амп;дней=7
если я напишу код на c# ниже, у меня не будет никаких проблем

Проверьте новое окно инструментов();
sb. Append("http://api.apixu.com/v1/forecast.xml?key=5742bec32f4141e08db171907171010&q=");
СБ.Добавить(txtbox.Текст);
sb. Append ("& days=");
sb. Append("7");
это код, который я написал для отображения в виде сетки данных, но ни один результат отображения не может исправить код для меня, чтобы отобразить информацию о погоде за 7 дней, которая будет отображаться в виде сетки данных. я написал полный код, который уже пробовал.

Что я уже пробовал:

Проверьте новое окно инструментов();
sb. Append("http://api.apixu.com/v1/forecast.xml?key=5742bec32f4141e08db171907171010&q=");
СБ.Добавить(txtcity.Текст);
sb. Append ("& days=");
sb. Append("7");




XmlReader xmlFile;
xmlFile = XmlReader.Создать(СБ.Метод toString());
DataSet ds = новый набор данных();
ДС.Метод readxml(xmlфайл);

по каждому элементу (объект DataTable таблица в ДС.Таблицы)
{
foreach (строка DataRow в таблице.Строки)
{
dataGridView1.Источник данных = строка.ItemArray;
}
}

1 Ответов

Рейтинг:
0

TheRealSteveJudge

Похоже, что ваш подход к вызову этой веб-службы неверен.

Вы могли бы получить данные вот так.

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);
        }
}


Еще немного информации:

Сам набор данных содержит 8 таблиц.

местоположение,
текущий,
состояние,
прогноз,
forecastday,
день,
астрономический,
час

Для каждой из этих таблиц у вас должен быть один DataGridView.

например, местоположение может быть показано следующим образом:

dataGridView1.DataSource = dataSet.Tables[0];


kobinath

частный недействительными методе button2_click(объект отправителя, EventArgs в электронной)
{
Проверьте новое окно инструментов();
sb. Append("http://api.apixu.com/v1/forecast.xml?key=5742bec32f4141e08db171907171010&q=");
СБ.Добавить(txtcity.Текст);
sb. Append ("& days=");
sb. Append("7");

var request = sb. ToString();

использование (var webClient = new WebClient())
{
var response = webClient.DownloadData (запрос);

ВАР в XML = кодировка.Кодировке utf8.Метода getString(ответ);

using (var sr = new StringReader (xml))
{
var dataSet = новый набор данных();

var x = dataSet. ReadXml(sr);

dataGridView1. DataSource = x;

}
}


}
}


результат должен быть отображен на dataGridView1. я писал выше, но никакого результата не было показано, пожалуйста, любой может исправить эту проблему.

kobinath

dataGridView1. DataSource = dataSet.Таблицы[0];

когда я пишу dataset, получаю ошибку во время выполнения кода(dataset не существует в текущем контексте)

TheRealSteveJudge

Пожалуйста, смотрите обновленное решение.