2017-10-11 3 views
-1

Ich habe diesen Code viele Male versucht. unter Code aber Fehler bekommen.wie 7 Tage der Woche Wettervorhersage in c anzuzeigen #

Dies ist die API, die verwendet wird, um die Wochenprognose für 7 Tage zu erhalten. Im folgenden habe ich die Stadt "London" betreten. So kann ich den 7-Tage-Prognosebericht von London bekommen.

http://api.apixu.com/v1/forecast.xml?key=5742bec32f4141e08db171907171010&q=london&days=7 

wenn ich den Code in C# schreibe. anstelle von London, übergab ich die eine Textbox control.because das Land, das ich in die Textbox eingegeben. Das jeweilige Land ist 7-Tage-Prognose wird in Rasteransicht angezeigt. dies ist der Code, den ich

versucht
string city = txtcity.Text; 
       string uri = string.Format("http://api.apixu.com/v1/forecast.xml?key=02d3de968c424e20b5a74149172409 &q=" + city + " &days=7"); 

ich an dieser Stelle überboten. Ich weiß nicht, wie ich den Textfeldnamen innerhalb der URL übergebe.

Das Endergebnis muss in der Rasteransicht angezeigt werden. Ich habe den folgenden Code ausprobiert. Die Vorhersage für 7 Tage muss in der Rasteransicht angezeigt werden.

  XmlReader xmlFile; 
      xmlFile = XmlReader.Create(uri); 
      DataSet ds = new DataSet(); 
      ds.ReadXml(xmlFile); 
      dataGridView1.DataSource = ds.Tables[1]; 

bitte, jemand, mir helfen, dieses Problem mit so etwas

+1

Sie haben einen Raum Zeichen in der URL, vor '& q' ... könnte das sein? –

+0

können Sie den Code schreiben – user3489210

+0

entfernen Sie das Leerzeichen und versuchen Sie es erneut ... –

Antwort

0

kam ich habe accross zu lösen:

string city = txtcity.Text; 
// string.Format("foo{0}{1}", "bar", "foobar"); the bracket {0} will be replaced with bar and {1} with foobar 
// General better instead of using string concatenation "foor" + "bar" + "foobar" 
string uri = string.Format("http://api.apixu.com/v1/forecast.xml?key=02d3de968c424e20b5a74149172409&q={0}&days=7", city); 

DataSet ds = new DataSet(); 

// XmlReader is an IDisposable besure to dispose it 
//using (IDisposable) makes sure, that the object gets disposed, when not needed anymore 
using (XmlReader xmlFile = XmlReader.Create(uri)) 
{ 
    ds.ReadXml(xmlFile); 
} 

dataGridView1.DataSource = ds.Tables[1]; 

die Ergebnisse in: Grid containing the data

+0

sir. Ergebnis wird nur eine Zeile der Datenraster Ansicht angezeigt. haben 7 Tage Ergebnis erhalten – user3489210

+0

Nun, das ist, weil die Datenstruktur ist schrecklich. Sie haben mehrere Tabellen. Sie müssen alle Tabellen zusammenführen. –